Нужна помощь?
Создайте тему в соответствующем разделе
Не нужно писать всё в чат!Загляните на торговую площадку
Там вы можете купить
всё что касается игровых серверовНе хотите бан?
Пожалуйста, ознакомьтесь с нашими правилами
Не нарушайте порядок!Продаёте или покупаете?
Пользуйтесь услугами гаранта
Мы сделаем вашу сделку безопасной
- 0
-
Похожие публикации
-
Автор: Karakurd
Создание Процедур в базе данных, для чистки сервера во время рестарта и их запуск.
Основано на http://s-platoon.ru/index.php?/topic/835-udalenie-broshennoi-tekhniki/?p=8922 за батник парню отдельное спасибо!
Нам понадобится:
1. PhpMyAdmin или Navicat
2. Желание творить =)
Для начала нам нужно создать 2 хранимых процедуры и 1 функцию в базе данных:
1. Процедура pMain - открывает технику к которой утерян ключ (делает ее незакрываемой)
2. Функция FindVehicleKeysCount- определяет параметр наявности ключа для pMain
3. Процедура pCleanup - финальная очистка сервера перед стартом.
Процедура pMain:
PhpMyAdmin:
1. Открываем PhpMyAdmin => выбираем нашу базу => вкладка "Процедуры" => "Добавить процедуру"
2. Заполняем появившееся окно:
Имя процедуры......................................pMain
Тип.........................................................PROCEDURE
Параметры (Направление, Имя, Тип, Длина/значения, Параметры) - Удаляем строчку нажатием на красный крестик справа!
В поле "Определение" вставляем код:
Определяющий......................................Галка снята!
Определитель.........................................пользователь БД@localhost
Тип безопасности....................................DEFINER
Доступ к SQL данным.............................MODIFIES SQL DATA
Комментарий..........................................оставляем пустым
Жмем ОК - всё, процедура у нас есть.
Navicat:
1. Подключаемся к нашей БД => в верхнем меню кнопка "Functions" => "New function"
2. В появившемся окне ставим галку Type - Procedure и жмем "Finish"
3. Вкладка Definition:
В поле для SQL запроса всё стираем и вставляем код из под спойлера для PhpMyAdmin
Parameter..............................................оставляем пустым
Return Type............................................неактивно (оставляем пустым)
Type......................................................PROCEDURE
Вкладка Advanced:
Security.................................................DEFINER
Definer...................................................пользователь БД@localhost
Data Access..........................................MODIFIES SQL DATA
Deterministic..........................................галка снята
Вкладка Comment - оставляем пустой
Вкладка SQL Preview - в ней можно посмотреть запрос в БД который выполнится для создания данной процедуры, должно быть так:
Всё, жмем кнопочку "Save" вводим имя - pMain и процедура готова.
Процедура pCleanup
Создается аналогично процедуре pMain, только в поле "имя" естественно прописывам - pCleanup,
а в поле для SQL запроса следуйщий код:
Этот код можно подредактировать под себя, удалить ненужные запросы или добавить новые, а можно вообще отключить данную процедуру закоментировав в pMain строку:
CALL pCleanup(); Функция FindVehicleKeysCount:
PhpMyAdmin:
1. Открываем PhpMyAdmin => выбираем нашу базу => вкладка "Процедуры" => "Добавить процедуру"
2. Заполняем появившееся окно:
Имя процедуры....................................FindVehicleKeysCount
Тип.......................................................FUNCTION
Параметры...........................................[ имя - keyId ] [ тип - INT ] [ длина\значения - пусто ] [ параметры - пусто ]
Возвращаемый тип...............................INT
Вернуть длину/значения.......................11
Вернуть параметры...............................оставляем пустым
Определение........................................вставляем следуйщий код:
Определяющий....................................галку установить!
Определитель......................................пользователь БД@localhost
Тип безопасности.................................DEFINER
Доступ к SQL данным..........................READS SQL DATA
Комментарий.......................................оставляем пустым
Жмем ОК - функция готова.
Navicat:
1. Подключаемся к нашей БД => в верхнем меню кнопка "Functions" => "New function"
2. В появившемся окне ставим галку Type - Function и жмем "Finish"
3. Вкладка Definition:
В поле SQL запроса всё стираем и вставляем код из под спойлера для PhpMyAdmin
Parameter............................................`keyId` INT
Return Type..........................................int(11)
Type....................................................FUNCTION
Вкладка Advanced:
Security...............................................DEFINER
Definer.................................................пользователь БД@localhost
Data Access........................................READS SQL DATA
Deterministic........................................галка установлена!
Вкладка Comment - оставляем пустой
Вкладка SQL Preview должна отображать следуйщий запрос:
Жмем "Save" вводим имя FindVehicleKeysCount, функция готова.
//Данные процедуры можно добавить в базу SQL запросом (для тех кто понимает что делает), вот пример - http://s-platoon.ru/index.php?/topic/2107-protcedury-v-bd/?p=18767
С созданием процедур покончено, теперь нам всё это дело нужно запустить...
// Дальнейшая инструкция подразумевает что у Вас уже установлен BEC
Предлагаю вашему вниманию 2 варианта батника:
1. All In 1 - всё в одном окне, в том числе и BEC
2. BEC в отдельном окне, это дает возможность останавливать и запускать BEC при работающем сервере (удобно при его настройке)
Во втором случае нам понадобится отдельный батник для запуска BECa:
Bec.bat
timeout /t 35 cd D:\ArmA2\BEC "D:\ArmA2\BEC\Bec.exe" -f config.cfg exit Не забываем все пути и параметры в батниках править под свой сервер!!!
-
Автор: vitacite
Привет маленький гайд по работе с redis.
1) качаем и устанавливаем клиент для redis под windows
https://github.com/uglide/RedisDesktopManager
картинки как устанавливать прилагаются там же
2) запускаем клиент можно даже во время работы с сервером (на всякий случай сбекапте вашу базу данных)
3) для подключение вводим в окно с ip 127.0.0.1 и пароль который прописан у вас в redis конфиге после чего получаем доступ к базе данных вашего сервера включая торговцев их предметы и лут и предметы игроков (привязка осуществляется по STEAM ID)
Давайте рассмотрим простой пример, как это делается...
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
Обратите внимание на формат записи данных - сначала указывает список предметов которые есть у AI затем указывается их кол-во.
Для наглядности можно заменить предметы у ваших торговцев на эти =
[["WhiskeyNoodle","ItemCoolerE","Hatchet","16Rnd_9x21_Mag","PaintCanGrn","HeatPack","ItemGoldBar10oz","Chemlight_green","HandGrenade","30Rnd_9x21_Mag","6Rnd_45ACP_Cylinder","20Rnd_556x45_UW_mag","5Rnd_rollins_mag","9rnd_45X88_magazine","ItemScraps","optic_Holosight_smg","30Rnd_65x39_caseless_green","SmokeShellRed","SmokeShellBlue","20Rnd_762x51_Mag","emptyjar_epoch","muzzle_snds_H","SmokeShellOrange","5Rnd_127x108_APDS_Mag","arifle_Mk20C_plain_F","ChainSaw","30Rnd_65x39_caseless_mag_Tracer","30Rnd_65x39_caseless_mag","muzzle_snds_M","muzzle_snds_B","C_Van_01_box_EPOCH","honey_epoch","ItemEmerald","30Rnd_556x45_Stanag","30Rnd_762x39_Mag","PaintCanOra","11Rnd_45ACP_Mag","MortarBucket","FoodSnooter","PaintCanBlk","PaintCanBlu","PaintCanYel","optic_Holosight","arifle_MX_F","200Rnd_65x39_cased_Box","LMG_Mk200_F","Binocular","arifle_Mk20_plain_F","H_14_EPOCH","optic_Aco_smg","7Rnd_408_Mag","200Rnd_556x45_M249","9Rnd_45ACP_Mag","30Rnd_45ACP_Mag_SMG_01","V_4_EPOCH","V_16_EPOCH","hgun_PDW2000_F","jerrycan_epoch","100Rnd_65x39_caseless_mag","hgun_P07_F","SmokeShellGreen","Pelt_EPOCH","NVG_EPOCH","MiniGrenade","CircuitParts","optic_Yorris","10Rnd_762x51_Mag","5Rnd_127x108_Mag","6Rnd_GreenSignal_F","hgun_Pistol_Signal_F","SmokeShell","optic_Aco","hgun_Pistol_heavy_01_F","arifle_MXC_F","hgun_Rook40_F","M14Grn_EPOCH","SmokeShellPurple","muzzle_snds_H_MG","acc_flashlight","m249Tan_EPOCH","SMG_02_F","m249_EPOCH","200Rnd_65x39_cased_Box_Tracer","30Rnd_556x45_Stanag_Tracer_Yellow","optic_DMS","Towelette","acc_pointer_IR"],[1,4,0,11,1,2,2,19,16,5,5,2,2,2,1,1,2,1,2,1,0,1,15,0,1,0,2,0,2,2,0,0,1,8,2,1,11,0,0,0,1,1,1,3,13,1,2,1,0,2,2,2,9,4,1,1,2,0,1,1,14,1,0,8,0,1,1,0,2,1,14,3,1,1,1,0,14,1,1,1,1,1,1,1,1,2,1]] Оригинальный гайд можно найти на официальном сайте epoch
http://epochmod.com/forum/index.php?/topic/31459-editing-items-or-adding-items-to-traders-using-redismanager/
там же можно найти веб утилиты для управления лутом и финансами игроков и онлайн карту для вашего сервера.
-
Автор: Windows
Добрый вечер! У меня проблема с базой данных, запускаю сервер, читает задание, игра началась и всё, глухо как в танке =( помогите разобраться в чём проблема
-
Автор: JackKilovat
Помогите, стала база данных долго подгружать, дайте всякие команды для базы данных, и все такое, а то сервер лагает при 30 человек
железо:
6 ядер 3 грц
2 гб оперативы
40 ссд
-
Автор: Gogi
Всем добрый вечер!!
Решил я реализовать стартовый лут через базу данных. Если вставлять все руками то работает просто замечательно. Написал тригер который срабатывает при при заполнении таблицы character_data, на подобии гайда:
http://s-platoon.ru/index.php?/topic/98-reliz-polzovatelskaia-tochka-spauna-cherez-baz/?hl=релиз
Собственно ничего сложного нет в запросе который я написал но все же он не хочет работать, либо я не так его написал.
CREATE TRIGGER `custom_spawn` BEFORE INSERT ON `character_data` FOR EACH ROW BEGIN DECLARE PUID varchar(50); DECLARE KOORD varchar(50); DECLARE INV longtext; DECLARE BCK longtext; SET PUID = (SELECT `PlayerUID` FROM `cust_spawn` WHERE `PlayerUID`=NEW.PlayerUID); SET INV = (SELECT `Inventory` FROM `cust_spawn` WHERE `PlayerUID`=NULL); SET BCK = (SELECT `Backpack` FROM `cust_spawn` WHERE `PlayerUID`=NULL); IF(PUID=NEW.PlayerUID) THEN SET INV = (SELECT `Inventory` FROM `cust_spawn` WHERE `PlayerUID`=PUID); SET BCK = (SELECT `Backpack` FROM `cust_spawn` WHERE `PlayerUID`=PUID); END IF; IF((SELECT `worldspace` FROM `cust_spawn` WHERE `PlayerUID`=NEW.PlayerUID)!=NULL) THEN SET KOORD = (SELECT `worldspace` FROM `cust_spawn` WHERE `PlayerUID`=NEW.PlayerUID); SET NEW.Worldspace = KOORD; END IF; SET NEW.Inventory = INV; SET NEW.Backpack = BCK; END; Вкратце обьясню, как я представлю его работу:
В таблице кастомного спавна есть строка NULL, поэтому сначала переменным INV и BCK (Инвентарь и рюкзак соответсвенно) значения лута для обычных игроков. Потом идет проверка UID новой строки на наличие UID в таблице с лутом. Если это так, то инвентарь и рюкзак берутся из строки с этим UID из таблицы лута. Следующая проверка на кастомную точку спавна, я сделал так что можно делать донату только лут без спавна в желаемом месте.
-
-
Наш выбор
-
Создаем свой серверный мод. [DayZ 1.4 to Discontined]
123new опубликовал тему в Версия 1.0 и выше,
-
Увеличение карты х2
vitacite опубликовал тему в Картостроение,
Здравствуйте. После рестарта начали пропадать техника с ключами, постройки и сейфы, как будто был вайп, но после 1-2 рестартов появляется все на месте + кучи техники, которой до этого не было. Каждый раз приходится делать откат.. Раньше эта проблема была примерно рас в месяц, а теперь по 2-3 раза за неделю. Не подскажете, как это можно исправить? Версия сервера 1.0.4.2.
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах