Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Скажи пожалуйста,а какой смысл от этого? То что плагин выполнит после смены карты через 120 секунд обновление випов от этого лучшую сторону ничего не поменяется,хотелось бы увидеть полноценный фикс а не костыли.
Скажи пожалуйста,а какой смысл от этого? То что плагин выполнит после смены карты через 120 секунд обновление випов от этого лучшую сторону ничего не поменяется,хотелось бы увидеть полноценный фикс а не костыли.
Выкладываю свои скрипты, которыми очень долгое время помогал людям переносить VIP-игроков из SQLite в MySQL базу, и наоборот.
SQLite2MySQL.php - из SQLite в MySQL MySQL2SQLite.php - из MySQL в SQLite
Как пользоваться?
Открыть нужный скрипт редактором Notepad++, или любым иным, поддерживающим кодировку UTF-8 без BOM (строго без BOM).
Найти настройки скрипта. Они помечены специальным комментарием:
PHP:
/**
* Настройки скрипта.
*/
Произвести настройку, загрузить на удалённый веб-хостинг.
Открыть в веб-браузере.
Обращаю внимание: в базе, в которую производится импорт, уже должна существовать структура. Для MySQL достаточно хотя бы один раз подключить плагин к нему.
Если нет возможности, или желания, прикладываю запросы для MySQL базы, которые надо выполнить через phpMyAdmin / HeidiSQL / любой иной менеджер БД.
SQL:
CREATE TABLE IF NOT EXISTS `vip_users` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`auth` VARCHAR(64) UNIQUE NOT NULL,
`name` VARCHAR(64) NOT NULL default 'unknown',
`auth_type` TINYINT(2) UNSIGNED NOT NULL default '0',
`pass_key` VARCHAR(64) default NULL,
`password` VARCHAR(64) default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `auth_id` (`auth`)
) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
CREATE TABLE IF NOT EXISTS `vip_overrides` (
`user_id` INT(10) UNSIGNED NOT NULL,
`server_id` INT(10) UNSIGNED NOT NULL,
`group` VARCHAR(64) default NULL,
`expires` INT(10) UNSIGNED NOT NULL default '0',
PRIMARY KEY (`user_id`, `server_id`),
UNIQUE KEY `user_id` (`user_id`, `server_id`),
CONSTRAINT `vip_overrides_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `vip_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) DEFAULT CHARSET=utf8;
Выкладываю свои скрипты, которыми очень долгое время помогал людям переносить VIP-игроков из SQLite в MySQL базу, и наоборот.
SQLite2MySQL.php - из SQLite в MySQL MySQL2SQLite.php - из MySQL в SQLite
Как пользоваться?
Открыть нужный скрипт редактором Notepad++, или любым иным, поддерживающим кодировку UTF-8 без BOM (строго без BOM).
Найти настройки скрипта. Они помечены специальным комментарием:
PHP:
/**
* Настройки скрипта.
*/
Произвести настройку, загрузить на удалённый веб-хостинг.
Открыть в веб-браузере.
Обращаю внимание: в базе, в которую производится импорт, уже должна существовать структура. Для MySQL достаточно хотя бы один раз подключить плагин к нему.
Если нет возможности, или желания, прикладываю запросы для MySQL базы, которые надо выполнить через phpMyAdmin / HeidiSQL / любой иной менеджер БД.
SQL:
CREATE TABLE IF NOT EXISTS `vip_users` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`auth` VARCHAR(64) UNIQUE NOT NULL,
`name` VARCHAR(64) NOT NULL default 'unknown',
`auth_type` TINYINT(2) UNSIGNED NOT NULL default '0',
`pass_key` VARCHAR(64) default NULL,
`password` VARCHAR(64) default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `auth_id` (`auth`)
) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
CREATE TABLE IF NOT EXISTS `vip_overrides` (
`user_id` INT(10) UNSIGNED NOT NULL,
`server_id` INT(10) UNSIGNED NOT NULL,
`group` VARCHAR(64) default NULL,
`expires` INT(10) UNSIGNED NOT NULL default '0',
PRIMARY KEY (`user_id`, `server_id`),
UNIQUE KEY `user_id` (`user_id`, `server_id`),
CONSTRAINT `vip_overrides_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `vip_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) DEFAULT CHARSET=utf8;
L 11/04/2018 - 15:28:59: Пытаемся подключиться к БД...
L 11/04/2018 - 15:28:59: Успешно подключился к SQLite базе!
L 11/04/2018 - 15:28:59: Успешно подключился к MySQL базе!
L 11/04/2018 - 15:28:59: Загрузка пользователей...
L 11/04/2018 - 15:28:59: Подготовка SQL запросов...
L 11/04/2018 - 15:28:59: Запуск транзакции...
<br />
<b>Notice</b>: Undefined index: auth in <b>/var/www/***/data/www/***.ru/SQLite2MySQL.php</b> on line <b>72</b><br />
L 11/04/2018 - 15:28:59: Обрабатываю игрока will_rock ()...
<br />
<b>Notice</b>: Undefined index: auth in <b>/var/www/***/data/www/***.ru/SQLite2MySQL.php</b> on line <b>74</b><br />
<br />
<b>Notice</b>: Undefined index: auth in <b>/var/www/***/data/www/***.ru/SQLite2MySQL.php</b> on line <b>75</b><br />
<br />
<b>Notice</b>: Undefined index: auth_type in <b>/var/www/***/data/www/***.ru/SQLite2MySQL.php</b> on line <b>75</b><br />
<br />
<b>Notice</b>: Undefined index: pass_key in <b>/var/www/***/data/www/***.ru/SQLite2MySQL.php</b> on line <b>75</b><br />
<br />
<b>Notice</b>: Undefined index: password in <b>/var/www/***/data/www/***.ru/SQLite2MySQL.php</b> on line <b>75</b><br />
<br />
L 11/04/2018 - 15:28:59: Завершаем транзакцию к БД...
L 11/04/2018 - 15:28:59: Готово.
И так с каждым игроком. Игра css v34, mysql 5.7, php 5.6-7.0 пробовал
Расскажите дураку какие манипуляции проводить с базой данных?
Сделал еще 1 запись в databases с базой vip_core и так же заменил базу с vip на vip_core, поставил плагин, ввел команду и ничего не произошло, бд пустая
@spazm, сервер перезагружали? SM кеширует содержимое файла databases.cfg до смены карты, как минимум.
Если SM свежий - можно выполнить sm_reload_databases. Его не так давно добавили.
L 11/04/2018 - 17:01:26: SourceMod error session started
L 11/04/2018 - 17:01:26: Info (map "jb_summer_jail_v2") (file "errors_20181104.log")
L 11/04/2018 - 17:01:26: [SM] Exception reported: Client 17 is not in game
L 11/04/2018 - 17:01:26: [SM] Blaming: vip/VIP_Core.smx
L 11/04/2018 - 17:01:26: [SM] Call stack trace:
L 11/04/2018 - 17:01:26: [SM] [0] ShowVGUIPanel
L 11/04/2018 - 17:01:26: [SM] [1] Line 164, vip/Info.sp::DisplayInfo
L 11/04/2018 - 17:01:26: [SM] [2] Line 31, vip/Info.sp::DisplayClientInfo
L 11/04/2018 - 17:01:26: [SM] [3] Line 286, vip/CMD.sp::VIPMenu_CMD
L 11/04/2018 - 17:01:26: [SM] Exception reported: Client 17 is not in game
L 11/04/2018 - 17:01:26: [SM] Blaming: vip/VIP_Core.smx
L 11/04/2018 - 17:01:26: [SM] Call stack trace:
L 11/04/2018 - 17:01:26: [SM] [0] ShowVGUIPanel
L 11/04/2018 - 17:01:26: [SM] [1] Line 164, vip/Info.sp::DisplayInfo
L 11/04/2018 - 17:01:26: [SM] [2] Line 31, vip/Info.sp::DisplayClientInfo
L 11/04/2018 - 17:01:26: [SM] [3] Line 286, vip/CMD.sp::VIPMenu_CMD
L 11/04/2018 - 17:01:26: [SM] Exception reported: Client 17 is not in game
L 11/04/2018 - 17:01:26: [SM] Blaming: vip/VIP_Core.smx
L 11/04/2018 - 17:01:26: [SM] Call stack trace:
L 11/04/2018 - 17:01:26: [SM] [0] ShowVGUIPanel
L 11/04/2018 - 17:01:26: [SM] [1] Line 164, vip/Info.sp::DisplayInfo
L 11/04/2018 - 17:01:26: [SM] [2] Line 31, vip/Info.sp::DisplayClientInfo
L 11/04/2018 - 17:01:26: [SM] [3] Line 286, vip/CMD.sp::VIPMenu_CMD
L 11/04/2018 - 17:35:45: Error log file session closed.
Спасибо, буду знать. Мы с @Kr1kuzya уже все решили. Не работало по причине того, что там было под вторую версию. --- Добавлено позже --- @R1KO, подскажи как разшифровать стим ид))? В реале такой STEAM_0:0:1194441779 а в бд -1906083738 (css v34) Перешел на mysql чтобы было удобно менять стим ид игрокам через phpmyadmin а получается не все так просто :beee:
Краткая инструкция переноса Базы данных VIP игроков с SQLite на MySQL под версией ядра 3.0 (vip_core.sq3).
1) Использовать данный сайт Convert SQLite to MySQL online - RebaseData
Пояснение: Первый импорт сайт дает сделать бесплатно (фулл версия), второй, третий и т.д. импорт, он делает в "лайт" версии (не более 100 строк переносит), в целом, в итоговой версии выходит 54 строчки (я импортировал 5 разных баз с 5 серверов). Если вам ппц как надо чтобы все версии импорта были фулл (ну вот вдруг), то используйте ВПН для замены IP. 1 IP = 1 полному импорту.
2) После того, как вы сделали импорт, открываем итоговый файл "data.sql". Вы конечно можете сразу его залить в базу, но толку мало. Не хватает 1 столбца. Решаем проблему.
3) Находим в открывшемся файле следующее (открывать через Notepad++)
C-подобный:
--
-- Table structure for table `vip_users`
--
DROP TABLE IF EXISTS `vip_users`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `vip_users` (
`account_id` int(11) DEFAULT NULL,
`name` varchar(64) DEFAULT NULL,
`lastvisit` int(11) DEFAULT NULL,
`group` varchar(64) DEFAULT NULL,
`expires` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
Ткну носом, не хватает конкретно 1 столбца для работоспособности таблицы. Столбца "SID", сайт его по какой-то причине игнорит. Не беда.
Вставляем данную строку `sid` int(10) unsigned NOT NULL, чтобы получилось вот так
C-подобный:
--
-- Table structure for table `vip_users`
--
DROP TABLE IF EXISTS `vip_users`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `vip_users` (
`account_id` int(11) DEFAULT NULL,
`name` varchar(64) DEFAULT NULL,
`lastvisit` int(11) DEFAULT NULL,
`sid` int(10) unsigned NOT NULL,
`group` varchar(64) DEFAULT NULL,
`expires` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
Именно так, никак иначе. Поздравляю, вы добавили столбец, но в перенесенных игроках не прописан данный столбец и соответственно, при импорте в базу, будет выдавать ошибку. Так же исправляем (занимает мало времени).
4) Находим данную строчку (ЭТО НА ПРИМЕРЕ МОИХ ВИПОВ, У ВАС СВОИ ИГРОКИ, НО ПРИНЦИП ТОТ ЖЕ)
C-подобный:
INSERT INTO `vip_users` VALUES (12069075,'?hhhistoria?',1540653434,'VIP',1544477605),(71839886,'dloC',1541336842,'VIP',1541694370),(96046283,'Lourence',1541264850,'VIP',1542392351), И ТАК ДАЛЕЕ (СМОТРЯ СКОЛЬКО ВИПОВ)
Краткий разбор. Первое значение это "account_id", второе "name", третье "lastvisit", четвертое ТО ЧТО МЫ ПРОПИСАЛИ В ТАБЛИЦУ это "SID", так как мы его только прописали, у игроков нет данного значения, у меня по дефолту это "0" (у вас скорее всего тоже, если вы не прописывали номера сервера в vip_core.cfg, если меняли с 0 на другой номер, пишите свой номер), соответственно каждому ВИПу я дописываю после последнего визита данное значение "0", выходит так
C-подобный:
INSERT INTO `vip_users` VALUES (12069075,'?hhhistoria?',1540653434, 0, 'VIP',1544477605),(71839886,'dloC',1541336842, 0, 'VIP',1541694370),(96046283,'Lourence',1541264850, 0, 'VIP',1542392351), И ТАК ДАЛЕЕ (СМОТРЯ СКОЛЬКО ВИПОВ)
Я думаю, логика понятна, дальше идет "group" и "expires".
5) Заливаем данный sql в базу
6) Прописываем в database.cfg
"vip_core"
{
"driver" "mysql"
"host" "Ip" // ip сервера где находится ваш mysql
"database" "Название БД" // название базы данных
"user" "Имя юзера Бд" // имя пользователя базы данных
"pass" "Пароль юзера БД" // пароль для этого пользователя
}
7) Рестартим сервер и проверяем. Выдаем себе ВИПку и лезем базу, прописалась ли она там или нет, если да, все окей, если нет, проверяйте по пунктам, у меня все получилось, у вас тоже получится. В целом, будут вопросы, пишите.
Пояснение: Первый импорт сайт дает сделать бесплатно (фулл версия), второй, третий и т.д. импорт, он делает в "лайт" версии (не более 100 строк переносит), в целом, в итоговой версии выходит 54 строчки (я импортировал 5 разных баз с 5 серверов). Если вам ппц как надо чтобы все версии импорта были фулл (ну вот вдруг), то используйте ВПН для замены IP. 1 IP = 1 полному импорту.
можно просто найти другой сайт, я скинул 1-й попавшийся из результатов гугла
3-й пункт вообще не нужен если ядро уже было подключено к mysql хоть раз и создало базу. Тогда запросы
и вообще лучше удалить, следовательно 4 и все остальные тоже получаются не нужными
Возможно, я просто шел простым путем понятным мне :D Не хотелось уже беспокоить лишний раз) Вот и пришло такое решение (Ну я дундук, что еще сказать)
P.s. В итоге все же инструкция родилась) Из двух комментариев)