Posts: 252
Threads: 24
Joined: Jul 2013
Reputation:
0
pawn Код:
fatal error 100: cannot read from file: "a_mysql"
Its placed in pawno>include
And this is what i found in it
PHP код:
/**
*
* MySQL Native Functions
* More information about the function usage at mysql.com
*
**/
#if defined mysql_included
#endinput
#endif
#define mysql_included
#include <a_samp>
#include <a_sampmysql>
//Definitions
#define mysql_fetch_row(%1) mysql_fetch_row_format(%1,"|")
#define mysql_get_field(%1,%2) mysql_fetch_field_row(%2,%1)
//Native functions
native mysql_affected_rows(connectionHandle = 1);
native mysql_close(connectionHandle = 1);
native mysql_connect(const host[],const user[],const database[],const password[]);
native mysql_debug(enable = 1);
native mysql_errno(connectionHandle = 1);
native mysql_fetch_int(connectionHandle = 1);
native mysql_fetch_field(number,dest[],connectionHandle = 1);
native mysql_fetch_field_row(string[],const fieldname[],connectionHandle = 1);
native mysql_fetch_float(&Float:result,connectionHandle = 1);
native mysql_fetch_row_format(string[],const delimiter[] = "|",connectionHandle = 1);
native mysql_field_count(connectionHandle = 1);
native mysql_free_result(connectionHandle = 1);
native mysql_get_charset(destination[],connectionHandle = 1);
native mysql_insert_id(connectionHandle = 1);
native mysql_num_rows(connectionHandle = 1);
native mysql_num_fields(connectionHandle = 1);
native mysql_ping(connectionHandle = 1);
native mysql_query(query[],resultid = (-1),extraid = (-1),connectionHandle = 1);
native mysql_real_escape_string(const source[],destination[],connectionHandle = 1);
native mysql_reconnect(connectionHandle = 1);
native mysql_reload(connectionHandle = 1) = mysql_reconnect;
native mysql_set_charset(charset[],connectionHandle = 1);
native mysql_stat(const destination[],connectionHandle = 1);
native mysql_store_result(connectionHandle = 1);
native mysql_warning_count(connectionHandle = 1);
//Callback
forward OnQueryFinish(query[], resultid, extraid, connectionHandle);
26.09.2013, 14:55
(
Последний раз редактировалось Patrick; 26.09.2013 в 18:14.
)
On your main-script, you forgot to add
Posts: 252
Threads: 24
Joined: Jul 2013
Reputation:
0
Quote:
Originally Posted by pds2012
On your main-script, you forgot to add
First you forgot to put > after a_mysql
Second, its already there!!!
Sorry, sometimes people make mistake or miss-type, can you show us the whole error, for example this kind of error
pawn Код:
C:UsersPCNameLocationFoldernamegamemodesScriptName.pwn(9) : error 038: extra characters on line
not just the error:
pawn Код:
fatal error 100: cannot read from file: "a_mysql"
make you you include it like that, and you have the right include name on your include folder
pawn Код:
pawno/include/a_mysql.inc
Posts: 252
Threads: 24
Joined: Jul 2013
Reputation:
0
- 0
Вопросы
Доброго времени суток. Собственно сама проблема:
[15:04:16] [WARNING] CMySQLResult::GetRowData - invalid row ('0') or field index ('25')
[15:04:16] [WARNING] CMySQLResult::GetRowData - invalid row ('8') or field index ('1')
[15:04:16] [ERROR] cache_get_row_int - invalid datatype
[15:04:16] [WARNING] CMySQLResult::GetRowData - invalid row ('8') or field index ('2')
[15:04:16] [ERROR] cache_get_row_int - invalid datatype
[15:04:16] [WARNING] CMySQLResult::GetRowData - invalid row ('8') or field index ('3')
[15:04:16] [ERROR] cache_get_row_int - invalid datatype
Поделиться сообщением
Ссылка на сообщение
Лучший ответ
Опубликовал
ʟᴀsᴛ ᴇᴍᴘᴇʀᴏʀ.
,Опубликовано 28 июня, 2020
В решении этой проблемы можешь помочь себе только ты. Пробуй искать в моде по cache_get_row_int, проверяй таблицы.
6 ответов на этот вопрос
- Сортировать по голосам
- Сортировать по дате
-
- 0
19 минут назад, MacLuckys сказал:
В каком месте я спорил? Я лишь сказал, что сделал до появления ошибки. Может чем-то бы и помог этот факт в решении проблемы.
В решении этой проблемы можешь помочь себе только ты. Пробуй искать в моде по cache_get_row_int, проверяй таблицы.
Поделиться сообщением
Ссылка на сообщение
- 0
Г@MacLuckys Где-то в коде, есть строка с загрузкой с бд и указан неверный тип данных. Попробуй найди его.
Поделиться сообщением
Ссылка на сообщение
- 0
Проблема возникла после перехода на 0.3.7, на 0.3.е никаких ошибок не наблюдалось
4 часа назад, Nekit_Krut18 сказал:
Г@MacLuckys Где-то в коде, есть строка с загрузкой с бд и указан неверный тип данных. Попробуй найди его.
Отредактировано 27 июня, 2020 пользователем MacLuckys
Поделиться сообщением
Ссылка на сообщение
- 0
@MacLuckys Вам дали ответ, но вы спорите что проблемы нет, что виновата как я понял по вашим словам переход с 0.3е на 0.3.7
А так ответ тут очевиден
Цитата
Где-то в коде, есть строка с загрузкой с бд и указан неверный тип данных. Попробуй найди его
Поделиться сообщением
Ссылка на сообщение
- 0
В каком месте я спорил? Я лишь сказал, что сделал до появления ошибки. Может чем-то бы и помог этот факт в решении проблемы.
6 часов назад, MuhammadPawn сказал:
@MacLuckys Вам дали ответ, но вы спорите что проблемы нет, что виновата как я понял по вашим словам переход с 0.3е на 0.3.7
А так ответ тут очевиден
Поделиться сообщением
Ссылка на сообщение
- 0
Хорошо, спасибо.
2 минуты назад, GLADE сказал:
В решении этой проблемы можешь помочь себе только ты. Пробуй искать в моде по cache_get_row_int, проверяй таблицы.
Поделиться сообщением
Ссылка на сообщение
Эта тема закрыта для публикации ответов.
-
Последние посетители
0 пользователей онлайн
Ни одного зарегистрированного пользователя не просматривает данную страницу
-
Похожий контент
-
От
levi
Требуется pawn разработчик для создания копии мода амазинг рп, естественно не за бесплатно, цену обсудим уже далее. Желательно примерно знать системы амазинга.
ТГ: @fgsgfsadf.
-
От
Sergo_Alexeev
Менял на:
Ничего не происходит…
-
-
#2
Замените stock mysql_connects() на:
stock mysql_connects()
{
dbHandle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_BASE, MYSQL_PASSWORD);
switch(mysql_errno(dbHandle))
{
case 0: printf(«Подключение к базе данных состоялось успешно.»);
case 1044: printf(«При подключении к базе данных возникла ошибка: неверное имя пользователя.»);
case 1045: printf(«При подключении к базе данных возникла ошибка: неверный пароль.»);
case 1049: printf(«При подключении к базе данных возникла ошибка: неверное имя базы данных.»);
case 2003: printf(«При подключении к базе данных возникла ошибка: хостинг не отвечает»);
case 2005: printf(«При подключении к базе данных возникла ошибка: неизвестный адрес хостинга.»);
default: printf(«При подключении к базе данных возникла ошибка. Код ошибки: %d.», mysql_errno(dbHandle));
}
mysql_log(LOG_ALL);
return true;
}
И смотрите что пишет в логах.
-
#3
Заменил.
В логах пишет то же самое, что и до замены.
Код:
[20:59:36] [ERROR] mysql_connect - empty connection data specified[20:59:36] [ERROR] "mysql_errno" - invalid connection handle (id: 1)
@Elrmrnt-Kritik,
Так же после замены появился варнинг в строке switch(mysql_errno(dbHandle))
Код:
warning 217: loose indentation
Последнее редактирование модератором: 01.07.2017
-
#5
@Elrmrnt-Kritik,
Логи MySQL
[00:30:01] [DEBUG] CMySQLConnection::Connect — establishing connection to database…
[00:30:01] [DEBUG] CMySQLConnection::Connect — establishing connection to database…
[00:30:01] [ERROR] CMySQLConnection::Connect — (error #1045) Access denied for user ‘root’@’localhost’ (using password: YES)
[00:30:01] [ERROR] CMySQLConnection::Connect — (error #1045) Access denied for user ‘root’@’localhost’ (using password: YES)
[00:30:01] [ERROR] CMySQLConnection::Connect — (error #1045) Access denied for user ‘root’@’localhost’ (using password: YES)
[00:30:24] [ERROR] CMySQLConnection::Connect — (error #1045) Access denied for user ‘root’@’localhost’ (using password: YES)
[00:30:24] [DEBUG] CMySQLConnection::Connect — establishing connection to database…
[00:30:24] [DEBUG] CMySQLConnection::Connect — establishing connection to database…
[00:30:24] [ERROR] CMySQLConnection::Connect — (error #1045) Access denied for user ‘root’@’localhost’ (using password: YES)
[00:30:55] [DEBUG] CMySQLConnection::Connect — establishing connection to database…
[00:30:55] [DEBUG] CMySQLConnection::Connect — establishing connection to database…
[00:30:55] [DEBUG] CMySQLConnection::Connect — connection was successful
[00:30:55] [DEBUG] CMySQLConnection::Connect — connection was successful
[00:30:55] [DEBUG] CMySQLConnection::Connect — auto-reconnect has been enabled
[00:30:55] [DEBUG] CMySQLConnection::Connect — auto-reconnect has been enabled
[00:30:55] [DEBUG] CMySQLConnection::Connect — auto-reconnect has been enabled
[00:31:55] [DEBUG] mysql_tquery — connection: 1, query: «SELECT ‘id’ FROM ‘accounts’ WHERE ‘login’ = ‘Mark_Daniels'», callback: «player_check», format: «ii»
[00:31:55] [DEBUG] CMySQLQuery::Execute[player_check] — starting query execution
[00:31:55] [ERROR] CMySQLQuery::Execute[player_check] — (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near »accounts’ WHERE ‘login’ = ‘Mark_Daniels» at line 1
[00:31:55] [DEBUG] CMySQLQuery::Execute[player_check] — error will be triggered in OnQueryError
[00:31:55] [DEBUG] Calling callback «OnQueryError»..
Логи сервера
Код:
----------
Loaded log file: "server_log.txt".
----------
SA-MP Dedicated Server
----------------------
v0.3e, (C)2005-2012 SA-MP Team
[00:30:55] filterscripts = "" (string)
[00:30:55]
[00:30:55] Server Plugins
[00:30:55] --------------
[00:30:55] Loading plugin: dc_cmd
[00:30:55] Daniel's CMD plugin v2.8
[00:30:55] (c) 2014 Daniel_Cortez
[00:30:55] www.pro-pawn.ru
[00:30:55] Loaded.
[00:30:55] Loading plugin: mysql
[00:30:55] >> plugin.mysql: R39-2 successfully loaded.
[00:30:55] Loaded.
[00:30:55] Loading plugin: sscanf
[00:30:55]
[00:30:55] ===============================
[00:30:55] sscanf plugin loaded.
[00:30:55] Version: 2.8.1
[00:30:55] (c) 2012 Alex "Y_Less" Cole
[00:30:55] ===============================
[00:30:55] Loaded.
[00:30:55] Loading plugin: streamer
[00:30:55]
*** Streamer Plugin v2.7.4 by Incognito loaded ***
[00:30:55] Loaded.
[00:30:55] Loaded 4 plugins.
[00:30:55]
[00:30:55] Filterscripts
[00:30:55] ---------------
[00:30:55] Loaded 0 filterscripts.
[00:30:55] Подключение к базе данных состоялось успешно.
[00:30:55]
----------------------------------
[00:30:55] -------------Palace Rp------------
[00:30:55] ----------------------------------
[00:30:55] Number of vehicle models: 1
[00:31:55] Incoming connection: 127.0.0.1:53250
[00:31:55] [join] Mark_Daniels has joined the server (0:127.0.0.1)
[00:33:06] [part] Mark_Daniels has left the server (0:1)
-
#6
[00:30:55] Подключение к базе данных состоялось успешно.
Подключение прошло успешно.
Покажите SQL запрос поиска аккаунта из мода (при входе в игру), а также player_check.
-
#7
@Elrmrnt-Kritik,
Заранее извиняюсь если что-то лишнее приложил,я в этом деле новичок.
Код:
forward player_connect(playerid);
public player_connect(playerid)
{
new query[48+24];
format (query, sizeof(query), "SELECT 'id' FROM 'accounts' WHERE 'login' = '%s'", sendername(playerid));
mysql_function_query(dbHandle, query, true, "player_check", "ii", playerid, 0);
return 1;
}
forward player_check(playerid);
public player_check(playerid)
{
new rows[2];
cache_get_data(rows[0], rows[1]);
if (rows[0]) show_login(playerid);
else show_register(playerid);
return 1;
}
forward player_login(playerid);
public player_login(playerid)
{
new rows[2], temp [128];
cache_get_data(rows[0], rows[1]);
if(rows[0])
{
cache_get_field_content(0, "id", temp), player_info[playerid][ID] = strval(temp);
}
}
-
#8
mysql_function_query(dbHandle, query, true, «player_check», «ii», playerid, 0);
Замените на это:
mysql_function_query(dbHandle, query, true, «player_check», «i», playerid);
И попробуйте снова авторизоваться или что Вы там делаете…
-
#9
mysql_function_query(dbHandle, query, true, «player_check», «i», playerid);
Мне нужно добиться вызова окна регистрации при заходе в игру, уже прописанного в коде, но этого не происходит.
Аккаунт не создается в Базе данных, созданной мной в phpAdmins MySQL.
-
#11
@Elrmrnt-Kritik,
Да, естественно.
Заменил, перепроверил.
На всякий случай Логи MySQL
Код:
[01:23:27] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
[01:23:27] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
[01:23:27] [DEBUG] CMySQLConnection::Connect - connection was successful
[01:23:27] [DEBUG] CMySQLConnection::Connect - connection was successful
[01:23:27] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
[01:23:27] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
[01:23:27] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
[01:24:02] [DEBUG] mysql_tquery - connection: 1, query: "SELECT 'id' FROM 'accounts' WHERE 'login' = 'Mark_Daniels'", callback: "player_check", format: "i"
[01:24:02] [DEBUG] CMySQLQuery::Execute[player_check] - starting query execution
[01:24:02] [ERROR] CMySQLQuery::Execute[player_check] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''accounts' WHERE 'login' = 'Mark_Daniels'' at line 1
[01:24:02] [DEBUG] CMySQLQuery::Execute[player_check] - error will be triggered in OnQueryError
[01:24:02] [DEBUG] Calling callback "OnQueryError"..
-
#12
format (query, sizeof(query), «SELECT ‘id’ FROM ‘accounts’ WHERE ‘login’ = ‘%s'», sendername(playerid));
Попробуйте еще ее заменить на эту:
Код:
format (query, sizeof(query), "SELECT `id` FROM `accounts` WHERE `login` = '%s'", sendername(playerid));
-
#13
format (query, sizeof(query), «SELECT `id` FROM `accounts` WHERE `login` = ‘%s'», sendername(playerid));
Данная поправка стала вызывать прописанное окно регистрации аккаунта.
Но после прохождения регистрации,не создался аккаунт в самой БД MySQL
Логи:
Код:
[01:36:43] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
[01:36:43] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
[01:36:43] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
[01:36:43] [DEBUG] CMySQLConnection::Connect - connection was successful
[01:36:43] [DEBUG] CMySQLConnection::Connect - connection was successful
[01:36:43] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
[01:36:43] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
[01:37:07] [DEBUG] mysql_tquery - connection: 1, query: "SELECT `id` FROM `accounts` WHERE `login` = 'Mark_Daniels'", callback: "player_check", format: "i"
[01:37:07] [DEBUG] CMySQLQuery::Execute[player_check] - starting query execution
[01:37:07] [DEBUG] CMySQLQuery::Execute[player_check] - query was successfully executed within 0.574 milliseconds
[01:37:07] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
[01:37:07] [DEBUG] Calling callback "player_check"..
[01:37:07] [DEBUG] cache_get_data - connection: 1
[01:37:07] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
[01:37:29] [DEBUG] mysql_escape_string - source: "qwerty12345", connection: 1, max_len: 16
[01:37:29] [DEBUG] mysql_tquery - connection: 1, query: "INSERT INTO 'accounts' ('login', 'password') VALUES ('Mark_Danie", callback: "(null)", format: "(null)"
[01:37:29] [DEBUG] mysql_tquery - connection: 1, query: "SELECT * FROM 'accounts' WHERE 'login' = 'Mark_Daniels' AND 'pas", callback: "player_login", format: "i"
[01:37:29] [DEBUG] CMySQLQuery::Execute[] - starting query execution
[01:37:29] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''accounts' ('login', 'password') VALUES ('Mark_Daniels','qwerty12345')' at line 1
[01:37:29] [DEBUG] CMySQLQuery::Execute[] - error will be triggered in OnQueryError
[01:37:29] [DEBUG] CMySQLQuery::Execute[player_login] - starting query execution
[01:37:29] [ERROR] CMySQLQuery::Execute[player_login] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''accounts' WHERE 'login' = 'Mark_Daniels' AND 'password' = 'qwerty12345' LIMIT 1' at line 1
[01:37:29] [DEBUG] CMySQLQuery::Execute[player_login] - error will be triggered in OnQueryError
[01:37:29] [DEBUG] Calling callback "OnQueryError"..
[01:37:29] [DEBUG] Calling callback "OnQueryError"..
-
#15
@Elrmrnt-Kritik,
Код:
stock show_register(playerid)
{
SPD(playerid, 1 , DIALOG_STYLE_INPUT, "{0099FF}Регистрация", "Добро пожаловать на сервер Palace Role PlaynЧтобы начать игру вам необходимо пройти регистрациюnnВведите пароль для вашего аккаунтаnОн будет запрашиваться каждый раз когда вы заходите на серверnntt{30DB2A}Примечания:nttПароль может состоять из русских и латинских символовnttПароль чувствителен к региструnttДлинна пароля от 6 до 15-ти символов", "Далее", "");
}
-
#16
@SpongeBOZZ, в OnDialogResponse ищите if(dialogid == 1) или case 1 и показывайте.
-
#17
Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case 1:
{
if(!strlen(inputtext) || strlen(inputtext) < 6 ||strlen(inputtext) > 16)
{
show_register(playerid);
}
else
{
new query[128], temp[16];
mysql_real_escape_string(inputtext, temp);
format(query, sizeof(query), "INSERT INTO 'accounts' ('login', 'password') VALUES ('%s','%s')", sendername(playerid), temp);
mysql_function_query(dbHandle, query, false, "", "");
format(query, sizeof(query), "SELECT * FROM 'accounts' WHERE 'login' = '%s' AND 'password' = '%s' LIMIT 1", sendername(playerid), temp);
mysql_function_query(dbHandle, query, true, "player_login", "i", playerid);
}
}
}
return 1;
}
-
#18
@SpongeBOZZ, замените на это:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case 1:
{
if(!strlen(inputtext) || strlen(inputtext) < 6 ||strlen(inputtext) > 16)
show_register(playerid);
else
{
new query[128], temp[16];
mysql_real_escape_string(inputtext, temp);
format(query, sizeof(query), «INSERT INTO `accounts` (`login`, `password`) VALUES (‘%s’,’%s’)», sendername(playerid), temp);
mysql_function_query(dbHandle, query, false, «», «»);
format(query, sizeof(query), «SELECT * FROM `accounts` WHERE `login` = ‘%s’ AND `password` = ‘%s’ LIMIT 1», sendername(playerid), temp);
mysql_function_query(dbHandle, query, true, «player_login», «i», playerid);
}
}
}
return 1;
}
В апостроф (‘) нужно брать только типы данных в SQL запросах (‘%s‘, ‘%d‘, ‘%f‘), а названия таблиц, столбцов — в тальду (`). Например,
SELECT * FROM `accounts` WHERE `name` = ‘%s’
:261D: accounts и name — названия таблиц и столбцов соответственно — пишем `. ‘%s‘ — тип данных, которые мы получаем, потому используем ‘.
Последнее редактирование модератором: 03.07.2017
-
#19
В апостроф (‘) нужно брать только типы данных в SQL запросах (‘%s’, ‘%d’, ‘%f’), а названия таблиц, столбцов — в тальду (`). Например, ? 1 SELECT * FROM `accounts` WHERE `name` = ‘%s’ accounts и name — названия таблиц и столбцов соответственно — пишем `. ‘%s’ — тип данных, которые мы получаем, потому используем ‘.
Огромное вам спасибо, проблема решена, аккаунт добавился в БД.
Отдельное спасибо за приведенные примеры. 83DDE0A:
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
#include <a_samp>
#include <fix>
#include "streamer"
#include "a_actor"
#include "a_mysql"
#include "dc_cmd"
#include "sscanf2"
#include <mxdate>
#include <foreach>
//=======================================[ Дефайны ]========================================================================
//--------------База данных-------------
#define SQL_HOST "localhost"
#define SQL_USER "root"
#define SQL_PASS "mypw"
#define SQL_DB "mydb"
//-------------Дефайны функций----------
#define SCM SendClientMessage
#define SCMTA SendClientMessageToAll
#define SPD ShowPlayerDialog
//-------------Дефайны цвета------------
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_YELLOW 0xF7FF00FF
#define COLOR_WHITE 0xFFFFFFFF
#define COLOR_RED 0xF0320CFF
#define COLOR_ORANGEYELLOW 0xFFDF0FFF
#define COLOR_LIGHTRED 0xFF4530FF
#define COLOR_LIGHTGREY 0xD1D1D1FF
#define COLOR_BLUE 0x3657FFFF
#define COLOR_SALAD 0xA0FF33FF
#define COLOR_GREEN 0x4BCC2BFF
#define COLOR_ORANGE 0xFF7A05FF
#define SERVER_NAME "Dawn RolePlay"//㡭饠池
//----------------------аᣨ젠池-------------------
new rules[] =
"{FFDA1F}1. ϱ{FFFFFF}n"
"-Ƞ 鲯לּ询 쿡鳻, 糧 鬨 CLEO n"
"-ȠDeathMatch (DM) - 衭ᮥ塢𥤠 餰졡槠౨��n"
"-Ƞ 餰⡭ࡱࡢ(�䥥 ﮨ 㬿�� ⡨䱥)n"
"-Ƞ ല欠襠 쨠콡 ᣲ"
"-Ƞ 鳼 ࡳ賠⡶欿��Ქ ﲠᥠ��n"
"-Ƞ 鲯לּ询ᮨ塢館吝ﲲ橠池 嬿 ᮨ��屳䩬 餰흮",
rules_1[] =
"{FFDA1F}2. а⺥{FFFFFF}n"
"-Ƞ�, ﲪﱡ즭饠屳䩵 餰㝮"
"-Ƞ 軠屳䩬 餰젨ﳭﲿ��餰�౮��"
"-Ƞ ੱ ﬠ(𨬥𠢢ya zawel na server"")n"
"-Ƞ 쿡ῠ𥪫᭠ ﮭ鵠𥱳𱮢n"
"-Ƞ ��鳼 (��ﱿ婭㼥 ��쨠��硱�쯢褐誜n",
rules_2[] =
"{FFDA1F}3. d�鲲𠶨��FFFF}n"
"-Υ泌� ᥬ鮨��池 �� ‵ 鿠塭 ౠ㩫n"
"-d�鲲𠶨���欼㼡鱠沠�� ��嬿 롦寣ﮪ𥲭冷 “n"
"-Ҡ騠�𨬥��鿠鬨 ��硢𥬿 (𨬥𬠢௱쥥衯ﲲ 硫)n"
"-Ʊ쨠�� ��⼫𨬥ࡪ 㡬 ﹨⯷ 鳥 ᥬ鮨��";
enum player
{
ID[6],
NAME[MAX_PLAYER_NAME +1],
MONEY[128],
LEVEL[4],
}
new pInfo[MAX_PLAYERS][player];
new query[256];
main()
{
print("n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------n");
}
//new MySQL: sql;
new MySQL: cHandle;
public OnGameModeInit()
{
//=======================================[ Ү楨饠诩 塭 ]==================================================
new MySQLOpt: option_id = mysql_init_options(); // ϯ��MySQL
mysql_set_option(option_id, AUTO_RECONNECT, true); // b汥묾��半 cHandle = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS, SQL_DB, option_id); // ԭ��嫫��鿍
if(cHandle == MYSQL_INVALID_HANDLE || mysql_errno(cHandle) != 0) // 𮢥𪠠묾��塪 ⡧塤ᮭ {
print("[MySQL] Υ ﲼ 鳼 鮥 诩 塭."); // û㯤 ��믭
SendRconCommand("exit"); // ϱ㫠 池
return 1;
}
print("[MySQL] Ү楨饠诩 塭 𭮠즭");
//mysql_log(ERROR | WARNING);
mysql_log(ERROR | WARNING);
DisableInteriorEnterExits();
EnableStuntBonusForAll(0);
SetGameModeText("test");
SendRconCommand("hostname "SERVER_NAME"");
rules[sizeof(rules)-1] = 'n';
rules_1[sizeof(rules_1)-1] = 'n';
rules_2[sizeof(rules_2)-1] = '';
AddPlayerClass(0,1755.1631,-1894.1062,13.5568,268.8526,0,0,0,0,0,0);
return 1;
}
public OnGameModeExit()
{
mysql_close(); // Ƞ뱻㡥족捻鮥 诩 塭
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 OnPlayerConnect(playerid)
{
GetPlayerName(playerid, pInfo[playerid][NAME], MAX_PLAYER_NAME);
SetTimerEx("CheckPlayerExistance", 1000, 0, "i", playerid);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
//save_account(playerid);
mysql_close();
return 1;
}
public OnPlayerSpawn(playerid)
{
clear_player(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("/test", cmdtext, true, 10) == 0)
{
GivePlayerMoney(playerid, 50000);
// 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 1:
{
if(!response)
{
SPD(playerid, 35, DIALOG_STYLE_MSGBOX, "{FFEF0D}ϸ颪ࢬ "01", "Ƞ뱻 "");
SCM(playerid, COLOR_RED, "â楨q(/quit) ��골.");
Kick(playerid);
return 1;
}
else
{
if(!strlen(inputtext) || strlen(inputtext) < 8 || strlen(inputtext) > 16)
{
SCM(playerid, COLOR_RED, "[Ҩᝠϸ颪ຠͨᬼ 嬨 ࡰ 8 אַ⬠�콭ῠ16.");
}
else
{
new Characters[][2] = {"1","2","3","4","5","6","7","8","9"};
for(new i=0; i<sizeof(Characters); i++)
{
if(strfind(pInfo[playerid][NAME], Characters[i], true) != -1)
{
{
SPD(playerid, 35, DIALOG_STYLE_MSGBOX, "{FFEF0D}ϸ颪ࢬ "à𠭨ꡭ塤ﬦ歠𦠲���� ɧ�鳥 椮 衯ﱨ椨��, "Ƞ뱻 "");
SCM(playerid, COLOR_RED, "â楨q(/quit) ��골.");
Kick(playerid);
return 1;
}
}
}
SetPVarString(playerid, "reg_pass", inputtext);
SPD(playerid, 2, DIALOG_STYLE_INPUT, "{1472FF}ѥ䲲𠶨��ޫ櫲𮭭ῠ௷ "{FFFFFF}â楨履𥩠�� ௷ɱ௫�� 椮, 㻠泥 㯱ﲲ ᴭ⡱촷ᥠ㨫ﭠ 鬨 沫衧ᢳ妲塯ᱮ켮nnΠ email �㼸즬 볮 14 宥顂禲杮র檲衯橠嬿 祥 ௷nnԡ楨 ⡯𠢨콭ﲲ衢㯤ࡨ �塜"Š즥"", "Š즥", "");
}
}
}
case 2:
{
if(!response)
{
}
else
{
SPD(playerid, 3, DIALOG_STYLE_INPUT, "{1472FF}ѥ䩱鿠- ѥ��뢬 "{FFFFFF}Ʊ쨠㻠쨠ṥ족汢汥 ﲠ䮠屳䡜n믲ﱻ顲䱠沬 鳥 椮 ⡯ﬥ 杮n{C3FF1F}а衤ﲲ駥 㡬蠴-䮠㻠 ௫衢鶴ᤰ᧤殨墬 "Š즥", "аﰳ��
SetPVarString(playerid, "email", inputtext);
}
}
case 3:
{
if(!response)
{
SCM(playerid, COLOR_GREY, "Υ��젢);
SetPVarString(playerid, "referal" , "");
SPD(playerid, 4, DIALOG_STYLE_MSGBOX, "{1472FF}ѥ䩱鿠- Ю뢬 "û⦰鳥 ௫ 㡸椮 র砢, "ͳ粪謁, "ǥ驢);
}
else
{
SetPVarString(playerid, "referal" , inputtext);
SCM(playerid, COLOR_GREY, "Ʊ浥𠫢);
SPD(playerid, 4, DIALOG_STYLE_MSGBOX, "{1472FF}ѥ䩱鿠- Ю뢬 "û⦰鳥 ௫ 㡸椮 র砢, "ͳ粪謁, "ǥ驢);
}
}
case 4:
{
if(!response)
{
SetPVarInt(playerid, "sex", 2);
SCM(playerid, COLOR_GREY, "û 㼡𠫨 ǥ驠௫.");
SPD(playerid, 5, DIALOG_STYLE_INPUT, "{1472FF}ѥ䩱鿠- î豠 "Ԫ᧨侮Ჲ 㡸椮 র硜nϲ 18 宠50 ̥"Š즥", "");
}
else
{
SetPVarInt(playerid, "sex", 1);
SCM(playerid, COLOR_GREY, "û 㼡𠫨 ͳ粪褐௫.");
SPD(playerid, 5, DIALOG_STYLE_INPUT, "{1472FF}ѥ䩱鿠- î豠 "Ԫ᧨侮Ჲ 㡸椮 র硜nϲ 18 宠50 ̥"Š즥", "");
}
}
case 5:
{
if(!response)
{
}
else
{
new reg_age = strval(inputtext);
SetPVarInt(playerid, "age", reg_age);
SPD(playerid, 6, DIALOG_STYLE_INPUT, "{1472FF}ѥ䩱鿠- Π", "Ԫ᧨ᱳ 㮸졯汱ﮠ禜nà箮! ɭ��ᷨ��孨馩.", "Š즥", "");
}
}
case 6:
{
if(!response)
{
}
else
{
SPD(playerid, 7, DIALOG_STYLE_MSGBOX, "{1472FF}ѥ䩱鿠- ϯ䱻","{FFFFFF}û 㰥𢻥 餰ᦲ塢 GTA San Andreas Multiplayer (SAMP)?nͻ ௪᧥졢ᬠ寯שּׂ鳥콭辰롧먠嬿 㡱.", "ή㩷甆, "Ԧ塨䱠뢩;
SetPVarString(playerid, "about", inputtext);
}
}
case 7:
{
if(!response)
{
SetPVarInt(playerid, "newbie", 0);
SCM(playerid, COLOR_GREY, "û 㼡𠫨 - Ԧ塨䱠뢩;
SPD(playerid, 8, DIALOG_STYLE_MSGBOX, "{1472FF}ѥ䩱鿠- аᣨ젠池", rules, "а鮿 "ϲ�ࢩ;
}
else
{
SetPVarInt(playerid, "newbie", 1);
SCM(playerid, COLOR_GREY, "û 㼡𠫨 - ή㩷甆);
SPD(playerid, 8, DIALOG_STYLE_MSGBOX, "{1472FF}ѥ䩱鿠- аᣨ젠池", rules, "а鮿 "ϲ�ࢩ;
}
}
case 8:
{
if(!response)
{
SCM(playerid, COLOR_RED, "[Ҩᝠϸ颪ຠū��ṥ족汢汥 㡬 ⶮ婬狼Შᣨ졬表䱻.");
Kick(playerid);
}
else
{
//new query[256];
new r_pass[32];
new r_sex;
new r_email[32];
new r_referal[32];
new r_age;
new r_about[256];
new r_newbie;
GetPVarString(playerid, "reg_pass", r_pass, sizeof(r_pass));
GetPVarString(playerid, "email", r_email, sizeof(r_email));
GetPVarString(playerid, "referal", r_referal, sizeof(r_referal));
r_sex = GetPVarInt(playerid, "sex");
r_age = GetPVarInt(playerid, "age");
GetPVarString(playerid, "about", r_about, sizeof(r_about));
r_newbie = GetPVarInt(playerid, "newbie");
format(query, sizeof(query), "INSERT INTO `accounts` (`login`,`password`,`email`,`referal`,`sex`,`age`,`about`,`newbie`) VALUES ('%s','%s','%s','%s','%d','%d','%s','%d')", pInfo[playerid][NAME],r_pass,r_email,r_referal,r_sex,r_age,r_about,r_newbie);
mysql_tquery(cHandle, query, "OnPlayerRegistered", "i", playerid);
}
}
case 9:
{
if(!response)
{
// Ʊ쨠ᬨ 㼵懶
}
else
{
SetPVarString(playerid, "l_pass", inputtext);
//new query[128];
format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `login` = '%s' AND `password` = '%s' LIMIT 1",playername(playerid), inputtext);
mysql_tquery(cHandle, query, "OnPlayerLogin", "r", playername(playerid));
}
}
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
{
SetPlayerPos(playerid, fX, fY, fZ);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, 0);
//return 0;
}
//====================================================================
stock playername(playerid)
{
new pName[MAX_PLAYER_NAME +1];
GetPlayerName(playerid, pName, sizeof(pName));
return pName;
}
stock sendername(playerid)
{
new newname[MAX_PLAYER_NAME];
GetPlayerName(playerid, newname, sizeof(newname));
return newname;
}
stock save_account(playerid)
{
new string[256];
format(string, sizeof(string), "[SAVE ACCOUNT ON EXIT] User %s Money Ammount : %d", pInfo[playerid][NAME],pInfo[playerid][MONEY]);
printf(string);
//new query[256];
format(query, sizeof(query), "UPDATE `accounts` SET `money` = '%d' WHERE `id` = '%d' LIMIT 1", pInfo[playerid][MONEY], pInfo[playerid][ID]);
mysql_query(cHandle, query);
}
stock give_money(playerid, amount)
{
pInfo[playerid][MONEY] += amount;
GivePlayerMoney(playerid, amount);
}
stock clear_player(playerid)
{
pInfo[playerid][MONEY] = 0;
pInfo[playerid][ID] = 0;
}
stock LoadPlayerData(playerid)
{
new query[256];
format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `login` = '%s'", playername(playerid));
mysql_tquery(sql, query, "OnTest", "r", playerid);
cache_get_value_name_int(0, "money", pInfo[playerid][MONEY]);
}
//====================================================================
forward CheckPlayerExistance(playerid);
public CheckPlayerExistance(playerid)
{
SetPlayerCameraPos(playerid, 1027.7542, -1075.3053, 109.6629);
SetPlayerCameraLookAt(playerid, 1028.7198, -1075.5803, 109.6678);
// ⡬怜 㡰顭᭥𠠡 㩤 ﲪ𥡮⡋ﱠҠ
//format(query, sizeof query, "SELECT * FROM `accounts` WHERE `login` = '%s'", pInfo[playerid][NAME]); // ��᳨ 衯𥡮𮬠鷻 accounts 衯况믬 ᥥ ⡯ﬥ name
//mysql_tquery(sql, query, "PlayerExists", "ii", playerid, THREAD_TESTING);
mysql_format(cHandle, query, sizeof(query), "SELECT * FROM `accounts` WHERE `login` = '%e' LIMIT 1",pInfo[playerid][NAME]);
// the variable 'query' contains now the formatted query (including the escaped string)
mysql_tquery(cHandle, query, "PlayerExists");
return 1;
}
forward PlayerExists(playerid);
public PlayerExists(playerid)
{
if (cache_num_rows() < 1) // 沫衭᪤殮 0 ᥥ, 䱮ꡤﬦ歠衰椨𮢠
{
SCM(playerid,COLOR_RED, "NOT REGISTERED");
}
else // ࡥ妭 ᣲﱨ衶鿍
{
SCM(playerid,COLOR_GREEN, "REGISTERED");
}
return 1;
}
Pawno-Info.Ru — Портал о программировании №1
Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям и ответы на все интересующие Вас вопросы. После регистрации Вы сможете создавать темы, публиковать ответы, влиять на репутацию пользователей форума, обмениваться личными сообщениями и многое другое. Это быстро и совершенно бесплатно, так чего же Вы ждете?
Вход
Регистрация