[VIP] Core

vb

Участник
Сообщения
385
Реакции
31
Поддерживаю данного парня,фикс есть?

Если перезайти на сервер либо сменить карту то меня ядро не прогрузит и не будет випки у меня,если вручную обновить список випов то випка появится.
Скидывали же решение проблемы.
 

Вложения

  • vipFix.sp
    280 байт · Просмотры: 16

MaZa

Участник
Сообщения
1,732
Реакции
980
Скидывали же решение проблемы.
Скажи пожалуйста,а какой смысл от этого? То что плагин выполнит после смены карты через 120 секунд обновление випов от этого лучшую сторону ничего не поменяется,хотелось бы увидеть полноценный фикс а не костыли.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@xMaZax, где-то на форуме (скорее всего, в этой теме) @R1KO выкладывал тестовую версию, где это исправлено. Вроде бы.
 

vb

Участник
Сообщения
385
Реакции
31
Скажи пожалуйста,а какой смысл от этого? То что плагин выполнит после смены карты через 120 секунд обновление випов от этого лучшую сторону ничего не поменяется,хотелось бы увидеть полноценный фикс а не костыли.
Зато это рабочее решение. 120 сек ? так поменяй на своё значение.
Если ты про это [VIP] Core
То не помогает(
Так же, проблема осталась.
 

will_rock

Участник
Сообщения
1,074
Реакции
363
Выкладываю свои скрипты, которыми очень долгое время помогал людям переносить VIP-игроков из SQLite в MySQL базу, и наоборот.

  • SQLite2MySQL.php - из SQLite в MySQL
    MySQL2SQLite.php - из MySQL в SQLite

Как пользоваться?

  1. Открыть нужный скрипт редактором 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

Как пользоваться?

  1. Открыть нужный скрипт редактором 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 пробовал
 

will_rock

Участник
Сообщения
1,074
Реакции
363
@Kr1kuzya, а когда примерно будет? А то я уже хотел вручную переносить :dash1:
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@will_rock, Telegram или Discord есть? Предпочтительнее первое.
Могу сегодня по быстрому подогнать и скинуть.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@will_rock, потому что не хочется выкладывать непротестированный хотя бы на ком-то скрипт.
 

xek

Рыба клоун
Сообщения
1,652
Реакции
636
Расскажите дураку какие манипуляции проводить с базой данных?
Сделал еще 1 запись в databases с базой vip_core и так же заменил базу с vip на vip_core, поставил плагин, ввел команду и ничего не произошло, бд пустая
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@spazm, сервер перезагружали? SM кеширует содержимое файла databases.cfg до смены карты, как минимум.
Если SM свежий - можно выполнить sm_reload_databases. Его не так давно добавили.
 

pipchik

Участник
Сообщения
49
Реакции
1
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.
 

DJser

Участник
Сообщения
278
Реакции
15
Парни, помогите, не могу добавить игрока в вип, обновился до 3.0
 

will_rock

Участник
Сообщения
1,074
Реакции
363
@Kr1kuzya, а через вк нельзя? я то
@will_rock, это можно сделать простым импортом после этого преобразования Convert SQLite to MySQL online - RebaseData
Спасибо, буду знать. Мы с @Kr1kuzya уже все решили. Не работало по причине того, что там было под вторую версию.
--- Добавлено позже ---
@R1KO, подскажи как разшифровать стим ид))? В реале такой STEAM_0:0:1194441779 а в бд -1906083738 (css v34) Перешел на mysql чтобы было удобно менять стим ид игрокам через phpmyadmin а получается не все так просто :beee:
 
Последнее редактирование:

Nestor

Участник
Сообщения
45
Реакции
30
Краткая инструкция переноса Базы данных 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) Рестартим сервер и проверяем. Выдаем себе ВИПку и лезем базу, прописалась ли она там или нет, если да, все окей, если нет, проверяйте по пунктам, у меня все получилось, у вас тоже получится. В целом, будут вопросы, пишите.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • Автор ресурса
  • #1,279
Пояснение: Первый импорт сайт дает сделать бесплатно (фулл версия), второй, третий и т.д. импорт, он делает в "лайт" версии (не более 100 строк переносит), в целом, в итоговой версии выходит 54 строчки (я импортировал 5 разных баз с 5 серверов). Если вам ппц как надо чтобы все версии импорта были фулл (ну вот вдруг), то используйте ВПН для замены IP. 1 IP = 1 полному импорту.
можно просто найти другой сайт, я скинул 1-й попавшийся из результатов гугла

3-й пункт вообще не нужен если ядро уже было подключено к mysql хоть раз и создало базу. Тогда запросы
DROP TABLE IF EXISTS `vip_users`;
и
вообще лучше удалить, следовательно 4 и все остальные тоже получаются не нужными
 

Nestor

Участник
Сообщения
45
Реакции
30
можно просто найти другой сайт, я скинул 1-й попавшийся из результатов гугла

3-й пункт вообще не нужен если ядро уже было подключено к mysql хоть раз и создало базу. Тогда запросы
и вообще лучше удалить, следовательно 4 и все остальные тоже получаются не нужными
Возможно, я просто шел простым путем понятным мне :D Не хотелось уже беспокоить лишний раз) Вот и пришло такое решение (Ну я дундук, что еще сказать)
P.s. В итоге все же инструкция родилась) Из двух комментариев)
 
Сверху Снизу