- Регистрация
- 19 Фев 2011
- Сообщения
- 111
- Лучшие ответы
- 0
- Репутация
- 139
В данном уроке мы познакомимся с вами исходниками плагина MySQL.
Для того что-бы мы могли компилировать исходники данного плагина потребуется библиотека libmysql.dll.Для того что-бы ее загрузить открываем Dev-C++, открываем вкладку Сервис => Проверить обновления/пакеты..., выбираем источник загрузки в поле: Select Devpak выбираем второй вариант ( devpaks.org ).Открывается список доступных библиотек для загрузки, щелкаем по вкладке Update ( что-бы выстроить все в ряд по алфавиту ), а далее ищем libmysql, ставим на него галочку, внимание выбираем под свою версию, я на пример поставил на версии 4.1.13a, и нажимаем Download selected - пошла загрузка пакета, ждем.Потом появится подтверждение, нажимаем Install.
Отлично, пакеты мы установили, теперь мы научили наш компилятор компилировать MySQL плагин.
Далее, приступим к просмотру исходников плагина, скачиваем их, по ссылке -
Распаковываем в удобное вам место.Открываем папку, и находим файл samp-mysql.dev, открываем.
Слева мы видем навигацию по файлам проекта, например amx.h - это поддержка AMX.
А допустим amxplugin.cpp - это код плагина для работы с AMX модом.
Теперь перейдем к файлу sampmysql.cpp - это и есть основной код плагина.
Незабываем что Dev-C++ это компилятор языка C++.
Например, обозначение // не интерпретируется как код, также как и /* - */.
Вверху мы видем автор оставил небольшую информацию ( перевод ):
Это и есть подключение инклудов.
Теперь полистаем код и найдем там строки например:
Программист даже с начальными знаниями pawno поймет смысл этой функции.
Тут используется оператор if. на mysql_real_connect.
Если двинутся левее этих слов, видны такие слова:
- это использование переменных.
Если говорить более доступным языком, если соединение с MySQL сервером прошло спешно то используем функцию logprintf, запишем в лог:
Это и есть функции в коде pawn, тут мы можем их даже изменять, например:
Если мы напишем заместо samp_mysql_connect - samp_mysql_go, то следовательно в самом моде мы будем использовать функцию типа:
В общем, как то так, пишите, задавайте вопросы!
Копирайты pawno-info.ru
Для того что-бы мы могли компилировать исходники данного плагина потребуется библиотека libmysql.dll.Для того что-бы ее загрузить открываем Dev-C++, открываем вкладку Сервис => Проверить обновления/пакеты..., выбираем источник загрузки в поле: Select Devpak выбираем второй вариант ( devpaks.org ).Открывается список доступных библиотек для загрузки, щелкаем по вкладке Update ( что-бы выстроить все в ряд по алфавиту ), а далее ищем libmysql, ставим на него галочку, внимание выбираем под свою версию, я на пример поставил на версии 4.1.13a, и нажимаем Download selected - пошла загрузка пакета, ждем.Потом появится подтверждение, нажимаем Install.
Отлично, пакеты мы установили, теперь мы научили наш компилятор компилировать MySQL плагин.
Далее, приступим к просмотру исходников плагина, скачиваем их, по ссылке -
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Распаковываем в удобное вам место.Открываем папку, и находим файл samp-mysql.dev, открываем.
Слева мы видем навигацию по файлам проекта, например amx.h - это поддержка AMX.
А допустим amxplugin.cpp - это код плагина для работы с AMX модом.
Теперь перейдем к файлу sampmysql.cpp - это и есть основной код плагина.
Незабываем что Dev-C++ это компилятор языка C++.
Например, обозначение // не интерпретируется как код, также как и /* - */.
Вверху мы видем автор оставил небольшую информацию ( перевод ):
Ниже мы видем такие строки:/**************************************************************************/
SAMP-MySQL V0.15 плагин
Кодируется ADreNaLINe-DJ
Контакты: adrenalinedj@msn.com
Эта программа является свободным программным обеспечением, вы можете распространять или изменять её.
Это на условиях GNU General Public License, опубликованной
Free Software Foundation; либо версии 3 лицензии, либо
(По вашему выбору) любой более поздней версии.
Эта программа распространяется в надежде, что она будет полезной,
Но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, даже без подразумеваемой гарантии
Или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. Смотрите
GNU General Public License для более подробной информации.
Вы должны были получить копию лицензии GNU General Public
Вместе с этой программой. Если нет, см. <http://www.gnu.org/licenses/>.
PHP:
#include "SDK/plugin.h"
#if defined WIN32
//include this before mysql.h because it depends on socket types
#include <winsock.h>
#endif
#include <mysql/mysql.h>
#include <stdio.h>
#include <string.h>
Теперь полистаем код и найдем там строки например:
PHP:
if(mysql_real_connect(&connexion, serveur, user, password, 0, port_i, 0, 0))
{
logprintf("\nConnection to MySQL database: Successfull !");
free((void*)serveur);
free((void*)port_s);
free((void*)user);
free((void*)password);
return 1;
}
else
{
logprintf("\nConnection to MySQL database: Failed !");
logprintf("%s\n",mysql_error(&connexion));
free((void*)serveur);
free((void*)port_s);
free((void*)user);
free((void*)password);
return 0;
}
Тут используется оператор if. на mysql_real_connect.
Если двинутся левее этих слов, видны такие слова:
PHP:
connexion, serveur, user, password
Если говорить более доступным языком, если соединение с MySQL сервером прошло спешно то используем функцию logprintf, запишем в лог:
А если нет, то запишем в лог:Connection to MySQL database: Successfull !
Далее предлагаю вам найти строки:Connection to MySQL database: Failed !
PHP:
AMX_NATIVE_INFO SAMPMySQLNatives[ ] =
{
{ "samp_mysql_connect", n_samp_mysql_connect },
{ "samp_mysql_select_db", n_samp_mysql_select_db },
{ "samp_mysql_query", n_samp_mysql_query },
{ "samp_mysql_store_result", n_samp_mysql_store_result },
{ "samp_mysql_fetch_row", n_samp_mysql_fetch_row },
{ "samp_mysql_get_field", n_samp_mysql_get_field },
{ "samp_mysql_num_rows", n_samp_mysql_num_rows },
{ "samp_mysql_num_fields", n_samp_mysql_num_fields },
{ "samp_mysql_ping", n_samp_mysql_ping },
{ "samp_mysql_real_escape_string", n_samp_mysql_real_escape_string },
{ "samp_mysql_free_result", n_samp_mysql_free_result },
{ "samp_mysql_strtok", n_samp_mysql_strtok },
{ "samp_mysql_close", n_samp_mysql_close },
{ 0, 0 }
};
Если мы напишем заместо samp_mysql_connect - samp_mysql_go, то следовательно в самом моде мы будем использовать функцию типа:
PHP:
samp_mysql_go("127.0.0.1", "root", "");
Копирайты pawno-info.ru