Как настроить mysql для самп
1. Скачиваем программу под названием Denver. Перейти на официальный сайт программы и скачать можно здесь
Мы нажали на кнопку скачать, выбрали необходимую версию (5.2 или 5.3 | Рекомендую самую последнюю), далее вводим Имя, Фамилию и E-Mail адрес, на который придёт одноразовая и только твоя личная ссылка на скачивание программы.
2. Стартовая установка порадует нас вот таким вот окошком:
В которым вылезет Internet Explorer с окошком, которое необходимо закрыть для дальнейшей установки. Далее всё ещё проще, т.к. написано что делать.
3. Мы дошли до пункта
Тут просто можно нажать Enter, если устраивает путь по умолчанию, если нет, читаем информацию окна выше (самой установки). Для согласия вводим букву «y» (естественно без кавычек (вводим игрек, на латинице)).
4. Далее видим сообщение:
Лично я ввёл букву «Z», Вы можете ввести любую, кроме имеющихся букв относящихся к локальным дискам (Получается Букву «C» мы не можем использовать, т.к. такой локальный диск есть у всех по умолчанию).
В принципе все «непонятные» пункты установки я описал. Трудностей возникнуть не должно.
5. После успешной установки на рабочем столе появятся 3 ярлыка Денвера:
Запускаем «Start Denwer».
6. Вводим в браузерной строке «localhost» (Без кавычек) и нажимаем Enter
7. Вот что мы видим:
У нас есть надпись: «Ура, заработало!». Это уже хорошо
Листаем ниже и кликаем по ссылке «http://localhost/Tools/phpMyAdmin»
8. А теперь наступило «самое главное и вкусное». Наконец то будем подключать саму БД (Базу Данных).
Кликаем по вкладке «Базы данных»
Вписываем абсолютно любое название для будущей БД, я решил назвать «PawnWikiRu».
Уменьшено на 100% (1280 x 397) — Нажмите для увеличения
И так, успешно создано! Затем смотрим влево и кликаем по нашей свежесозданной Базе Данных
Уменьшено на 100% (1280 x 344) — Нажмите для увеличения
Угу, и с этим мы справились. Чтобы не писать таблицу SQL самому тупо возьмём и импортируем её вот так:
Уменьшено на 100% (1280 x 317) — Нажмите для увеличения
Выбираем Вашу БД, открываем и нажимаем «ОК» поэтапно, как показано на скриншоте ниже:
Уменьшено на 100% (1280 x 899) — Нажмите для увеличения
Успех! Вот мы и загрузили всё необходимое. Что мы видим? Слева расположены файлики, в которых записана та или иная информация об игроке, бизнесе, доме и прочем (В каждых модах по разному). При необходимости, если разбираешься в этом, можешь редактировать информацию просто кликнув на названием файлика.
Уменьшено на 100% (1280 x 498) — Нажмите для увеличения
9. Последний и самый важный шаг заключается в том, чтобы подключить нашу Базу Данных к самому моду.
Открываем мод через Pawno (Надеюсь это объяснять не нужно) и ищем такие строки:
Изменяем только строку
А именно «DataBaze». Помните, мы давали название нашей БД в самом начале? Так вот, это название нужно написать вместо DataBaze (Может стоять любое другое название, просто измените на своё, которое указывали ранее).
Моя строка тогда будет выглядеть так:
З.Ы.: Не забудь изменить название самого файла .sql, который мы импортировали на 8 шаге (который лежит в папке с модом). Осталось скомпилировать и наш мод полностью готов к работе.
Источник
SamPawno
Запуск мода на MYSQL
Описание: Уроки по скриптингу
Модератор: SJplayer
#1 Дим » 3 октября 2015, 19:10
Для начала надо скачиваем программу После установки видим
— — вводим «localhost», после ввода видим похожее только внизу
— вводим «root» и продолжаем установку. На следующей странице нас ждёт прозьба о паролях, вводим больше ничего не трогаем и продолжаем установку. После установки , нам требуется запустить, первая проба : заходим в любой браузер я бы советовал Chrome вписываем в место сайта «localhost» без кавычек , если у нас всё замечательно то ждём следующего шага, если же окно не открылось то скорее всего у вас запущен Skype: закрываем браузер, открываем Skype: жмём
порты 80 и 443 в качестве входящих альтернатив» после перезагрузите свой ПК. после перезагрузки , открываем браузер повторюсь желательно Chrome, забиваем «localhost» далее нажимаем сюда
видим открылось новая страница,
вводим данные с мода то есть название БД имеет формат название.sql ,
там где «Выберите файл» выбираем файл нашей базы данных , и жмём внизу «Ок» не трогая параметры,
если у вас вылезло такое окно то вы подключили БД к вашему ПК , идём к моду заходим в павно открываем мод ищем
ищем в моде данный текст. комплитим , и запускаем сервер! вуаля сервер успешно запущен, вы можете играть.
Источник
SamPawno
Пишем мод с нуля (MySQL R39-2 0.3z)
Описание: Уроки по скриптингу
Модератор: SJplayer
#1 Layk » 17 марта 2015, 20:38
echo Executing Server Config .
lanmode 0 // Не меняем!
rcon_password changeme // Обязательно меняем, или сервер не запустится
maxplayers 50 // Меняем на свое значение ( максимальное кол-во игроков, до 500 )
port 7777 // Порт ( по умолчанию 7777 )
hostname SA — MP 0.3 Server // Название сервера
gamemode0 grandlarc 1 // Название мода, меняем на своё ( У нас это будет new.pwn, Значит меняем grandlarc на new )
filterscripts gl_actions gl_realtime gl_property gl_mapicon ls_mall attachments skinchanger vspawner // Удаляем: gl_actions gl_realtime gl_property gl_mapicon ls_mall attachments skinchanger vspawner
announce 0 // Не меняем
query 1 // Не меняем
chatlogging 0 // Не меняем
weburl www . sa — mp . com // Web-адресс сервера
onfoot_rate 40 // Не меняем
incar_rate 40 // Не меняем
weapon_rate 40 // Не меняем
stream_distance 300.0 // Не меняем
stream_rate 1000 // Не меняем
maxnpc 0 // Не меняем
logtimeformat [% H :% M :% S ] // Не меняем
Поменяли? Но это ещё не все, приписываем ко всему строку:
plugins streamer mysql
— Это плагины, объясню позже
У нас получиться что-то вроде этого:
echo Executing Server Config .
lanmode 0
rcon_password 12345
maxplayers 500
port 7777
hostname New RP | Client : 0.3x
gamemode0 new 1
filterscripts
announce 0
query 1
chatlogging 0
weburl www .
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
maxnpc 0
logtimeformat [% H :% M :% S ]
plugins streamer mysql
И так, если вы хотите чтобы ваш мод работал правильно, то вам следующие плагины:
Стример
1. Streamer.inc, который лежит в папке pawno/include закидываем к себе в папку pawno/include вашего сервера.
2. Streamer.dll, который лежит в папке plugins закидываем в папку plugins вашего сервера. Примечание: Если сервер находиться на оси Linux, то закидываем Streamer.so, в server.cfg все плагины должны быть написаны с расширением .so.
Например: Streamer.so
Ну все. Нам нужны только эти два файла.
MySQL R39-2 — Мы будем использовать плагин R39-2
1. a_mysql.inc закидываем к себе в папку pawno/include вашего сервера.
2. mysql.dll закидываем в папку plugins вашего сервера.
3. libmysql.dll обязательно кидаем в папку с сервером
Денвер — И самое главное, это Denwer (Denwer обеспечит нам Базу Данных MySQL PhpMyAdmin).
Устанавливаем Denwer. Думаю, вопросы по его установке не возникнут.
И так, установили Denwer , закинули плагины? Тогда поехали.
Для начала заходим в папку своего сервера, видим там другую папку » pawno «, заходим в неё. Далее заходим в саму программу pawno.exe Давайте начнем писать наш мод. Нажмем на самую первую иконку » New «. Мы создали новый мод, если мы сохраним его под названием » new » в папку » gamemodes » запустим сервер и зайдем на него ( для захода используйте IP: 127.0.0.1 ), то увидим всем знакомого негра CJ в районе Лас Вентураса, как мы видим это ещё не совсем Role Play мод, так давайте его уже наконец начнем делать! Идем в pawno и начинаем работу. Для начала давайте впишем наши инклуды таким образом:
После строки:
Для начала давайте удалим ненужные нам строки:
#if defined FILTERSCRIPT
public OnFilterScriptInit ()
<
print ( «\n—————————————» );
print ( » Blank Filterscript by your name here» );
print ( «—————————————\n» );
return 1 ;
>
public OnFilterScriptExit ()
<
return 1 ;
>
main ()
<
if ( mysql_errno ())
printf ( » Подключение к базе `%s` не успешно» , mysql_db );
else
printf ( » Подключение к базе `%s` успешно» , mysql_db );
>
Кстати немного о main().
Как вы видите функция print при запуске мода покажет нам текст в консоле который мы с вами ввели. Вы можете добавить ещё полей и написать в них что угодно. Так-же функция print служит для поиска багов в моде. Например у вас не работает функция, постепенно вставляйте print в код
Пример: (при проверке рекомендую использовать print )
stock Some_Function ( playerid )
<
print ( «Проверяем подключен ли игрок» );
if ( IsPlayerConnected ( playerid )) // Если игрок подключен,то
<
printr ( «Проверку прошли, ставим погоду» );
SetPlayerWeather ( playerid , 10 ); // Выводим ему погоду id 10
print ( «Паблик успешно выполнен» );
>
>
Немного истории.
При написании мода используются различные символы и переменные, разберем их.
Но вернемся к моду И так, удаляем строку:
Удалили? Отлично, перейдем к разборке самого мода.
Давайте для начала пропишем данные к базе MySQL , для этого отступаем одну строку после инклудов и пишем следующее:
#define mysql_host «localhost» // если запускаем сервер у себя на компьютере, то оставляем
#define mysql_db «samp» // имя базы данных mysql
#define mysql_user «root» // пользователь Mysql
#define mysql_pass «» // пароль от mysql
Далее давайте отступим ещё одну строчку и вставим следующую строку:
Также отступаем одну строку и вставляем:
enum pInfo
<
Key [ 128 ], //переменная пароля
Level //уровень игрока
>;
new PlayerInfo [ MAX_PLAYERS ][ pInfo ];
Далее идем чуть ниже,в public OnGameModeInit() и вставляем туда следующее:
mysql_variable = mysql_connect ( mysql_host , mysql_user , mysql_db , mysql_pass );
SetGameModeText ( «Register R39-2» );
В итоге у нас получится такой паблик (public) :
public OnGameModeInit ()
<
mysql_variable = mysql_connect ( mysql_host , mysql_user , mysql_db , mysql_pass );
SetGameModeText ( «Register R39-2» );
AddPlayerClass ( 0 , 1958.3783 , 1343.1572 , 15.3746 , 269.1425 , 0 , 0 , 0 , 0 , 0 , 0 );
return 1 ;
>
Далее таким же образом вставляем следующее в public OnGameModeExit():
В public OnPlayerConnect(playerid):
static const
str [] = «SELECT `Name` FROM `Accounts` WHERE `Name` = ‘%s'» ;
const
size = sizeof ( str )- 2 + MAX_PLAYER_NAME ;
new
string [ size ];
mysql_real_escape_string ( Name ( playerid ), Name ( playerid ));
format ( string , sizeof (string), str , Name ( playerid ));
mysql_function_query ( mysql_variable , string , true , «OnPlayerRegCheck» , «d» , playerid );
В public OnPlayerText(playerid, text[]):
if(! GetPVarInt ( playerid , «Logged» ))
return ! SendClientMessage ( playerid , — 1 , «Что бы писать в чат, нужно быть авторизированым.» );
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]):
switch( dialogid )
<
case 1 : //Регистрация
<
if ( inputtext [ 0 ] == ‘\0’ )
return ShowPlayerDialog ( playerid , 1 , DIALOG_STYLE_INPUT , «Регистрация» , «Добро пожаловать на сервер!\nВаш аккаунт не зарегистрирован!\n\nВведите пароль:» , «Далее» , «Отмена» );
OnPlayerRegister ( playerid , inputtext );
return 1 ;
>
case 2 : //Авторизация
<
if ( inputtext [ 0 ] == ‘\0’ )
return ShowPlayerDialog ( playerid , 2 , DIALOG_STYLE_PASSWORD , «Авторизация» , «Здравствуйте!\n\nВы зарегистрированы!\nВведите пароль:» , «Вход» , «Отмена» );
OnPlayerLogin ( playerid , inputtext );
return 1 ;
>
>
В самый конец кода:
stock OnPlayerRegister ( p , password [])
<
static const
str [] = «INSERT INTO `Accounts` (`Name`, `Key`) VALUES (‘%s’, ‘%s’)» ;
const
size = sizeof ( str )- 2 + MAX_PLAYER_NAME — 2 + 128 ;
new
string [ size ];
format ( string , sizeof (string), str , Name ( p ), password );
mysql_function_query ( mysql_variable , string , false , «RegisterCallback» , «d» , p );
return 1 ;
>
public RegisterCallback ( playerid );
public RegisterCallback ( playerid )
<
SendClientMessage ( playerid , — 1 , «Вы успешно зарегистрировались!» );
SetPVarInt ( playerid , «Logged» , 1 );
SpawnPlayer ( playerid );
return 1 ;
>
SavePlayer ( p )
<
if ( GetPVarInt ( p , «Logged» ) > 0 )
<
static const
str0 [] = «UPDATE `Accounts` SET `Key`, `Level` = ‘%d'» ,
str1 [] = «%s WHERE `Name` = ‘%s'» ;
const
size0 = sizeof ( str0 )- 2 + 128 — 2 + 16 ,
size1 = sizeof ( str1 )- 2 + 128 — 2 + MAX_PLAYER_NAME ;
#if size0>size1
#define size size0
#else
#define size size1
#endif
new
string [ size ];
format ( string , sizeof (string), str0 , PlayerInfo [ p ][ Key ], PlayerInfo [ p ][ Level ]);
format ( string , sizeof (string), str1 , string , Name ( p ));
mysql_query ( mysql_variable , string , false );
>
return 1 ;
>
stock OnPlayerLogin ( i , password [])
<
static const
str [] = «SELECT * FROM `Accounts` WHERE `Name` = ‘%s’ AND `Key` = ‘%s'» ;
const
size = sizeof ( str )- 2 + MAX_PLAYER_NAME — 2 + 128 ;
new
string [ size ];
format ( string , sizeof (string), str , Name ( i ), password );
mysql_function_query ( mysql_variable , string , true , «LoginCallback» , «ds» , i , password );
return 1 ;
>
public LoginCallback ( i , password []);
public LoginCallback ( i , password [])
<
static const
str [] = «Вы ввели неверный пароль ( попыток: %i/ 3 )» ;
new
rows ,
fields ,
maximum [ 128 ],
string [ sizeof ( str )- 2 + 1 ];
cache_get_data ( rows , fields );
if (! rows )
<
if ( GetPVarInt ( i , «wrongPass» ) == 2 )
return SendClientMessage ( i , — 1 , «Вы ввели неверный пароль уже 3 раза. Вы кикнуты.» ), Kick ( i );
SetPVarInt ( i , «wrongPass» , GetPVarInt ( i , «wrongPass» ) + 1 );
format ( string , sizeof (string), str , 3 — GetPVarInt ( i , «wrongPass» ));
ShowPlayerDialog ( i , 2 , DIALOG_STYLE_PASSWORD , «Авторизация» , string , «Вход» , «Выход» );
return 1 ;
>
cache_get_field_content ( 0 , «Level» , maximum ), PlayerInfo [ i ][ Level ] = strval ( maximum );
SetPVarInt ( i , «Logged» , 1 );
SendClientMessage ( i , — 1 , «Вы успешно авторизовались!» );
SpawnPlayer ( i );
SavePlayer ( i );
return 1 ;
>
Этим этапом мы с вами сделали регистрацию, и авторизацию на сервере. Спасибо Jeff_Hardy за данные коды по регистрации и авторизации.
Но это ещё не все, давайте запустим наш Denwer, далее в адресной строке наберем следующую ссылку: http://localhost/Tools/phpMyAdmin/
Создадим нашу Базу Данных samp и зайдем в неё, зайдя в неё мы с вами увидим сверху вкладочку «SQL» или «Структура», жмем на неё.
В появившемся поле мы вставим следующий код:
CREATE TABLE IF NOT EXISTS ` Accounts `
(
` Name ` varchar ( 24 ) COLLATE cp1251_bin NOT NULL ,
` Key ` varchar ( 30 ) CHARACTER SET utf8 NOT NULL ,
` Level ` int ( 3 ) NOT NULL
)
ENGINE = MyISA
Все готово! Теперь мы можем скомпилировать мод (F5) и запустить его.
Автор: Pro-Pawn Team
Исходники: Мод
Источник