Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe

Leaderboard


Popular Content

Showing content with the highest reputation since 03/23/21 in all areas

  1. 3 points
    Не чаще а быстрее Подождите понедельника-вторника - будет фикс полноценный - он недоделанный лежит - доделаю
  2. 2 points
    123new

    DimA Мошенник и кидала

    Как бы априори, не зря ж платун еще с давних армовских времен предлагал гарантов в сделки, а щас в виде торговой площадки те же условия предоставляет. Собственно, по сабжу, добавил, как я понимаю, ссылку на профиль автора работы, в топик старт. Понятное джело что тут много сторонников и противников накопилось. И мое мнение тут не решающее, я такой же посетитель, как и все. И, я думаю, никто не откажется вместе с остальными взглянуть на тот самый проблемный скар, прицел, и прочее, что названо в данной теме и стало точкой кипения. Причем, материалы от всех, включая автора этой работы. Скриншоты, видео разумеется с пояснениями что не так. Рассматривать и судить итог конфликта естественно не мне, а товарищу Dr.Tauren, курирующему данную ветку форума, я лишь смотрю за вашим общением в теме форума 😉
  3. 2 points
    Мод Проверен чисто как серверный и как клиент-серверный в сборке Вырубает всю даоновскую чушь более чем полностью Мод обфусцирован Подписать и положить в сборку VT_Mod_Fix.rar
  4. 2 points
    VT_Mod_Fix.rar Подключите как серверный Если все норм Так и оставляйте Если нет - проблема может быть у клиентов Подписывайте и вонзайте в Вашу мод-сборку Понятно что оно должно быть и на сервере и на клиенте В списке модов на стороне сервера сборка тогда должна быть последней! И отпишитесь о результатах
  5. 2 points

    Version 1.0.0

    4 downloads

    1. Мод чисто серверный 2. В теме архив с доп модом содержащим недостающие скриптовые классы нативных зданий необходимых для полноценной работы мода и доп модом слегка меняющим характеристики зомби. 3. Для получения непосредственно самого мода - обращаться ко мне в ВК https://vk.com/borizzk или тут в лс 4. Мод пакуется индивидуально. Для упаковки мода под ВАШ сервер, Вы должна сообщить мне имя ХОСТА (hostname) на котором запущен ВАШ сервер. Мод может быть использован только на одном хосте! 5. Мод в принципе не требует настроек, но формирует файл конфигурации json в профиле сервера позволяющий производить тонкие настройки работы мода (описание параметров конфигурации Вы получите вместе с модом). Видео с демонстрацией: 1. The mod is purely server-side 2. In the topic, an archive with an additional mod containing the missing script classes of native buildings necessary for the full operation of the mod and an additional mod that slightly changes the characteristics of zombies. 3. To get the mod itself directly-contact me in the VK https://vk.com/borizzk or here in the bos 4. The mod is packed individually. To package the mod for YOUR server, you must tell me the hostname on which YOUR server is running. Mod can be used only on one host! 5. The mod in principle does not require any settings, but forms a json configuration file in the server profile that allows you to make fine-tuning of the mod (you will get a description of the configuration parameters together with the mod). Demo video:

    95.00 USD

  6. 2 points

    Version 2.0.1

    4 downloads

    Простой серверный мод для логгирования. Мод написан в ознакомительных целях и не несёт в себе авторских прав. Основные функции: Создание каталога в директории $profile Идентификация подключаемого пользователя и создание файл-лога по SteamID. Запись в файл-лог: Подключение к серверу / Player OnConnect Переподключение / Player OnReconnect Отключение от сервера / Player OnDisconnect Смерть при потере крови/голод/т.д / Self Dead Смерть от Зомби / Killer - Zombie Смерть от игрока / Killer - Player Закапывание / Выкапывание тайников | Stash Структура лога: Год/Месяц/День Час/Мин/Сек > Имя Игрока SteamID: ****тут понятно**** Pos: <Позиция на карте> Событие 2021/4/13 15:25:31 > NAMEDPLAYER SteamID:************************ Pos:<13602.299805, 8.843118, 11217.331055> Connect Цена символическая для поддержания собственного сервера. Simple server-side mod for user logging. The mod is written for informational purposes only and does not bear any copyright. Main functions: 1. Creating a directory in the $profile directory 2. Identifying the connected user and creating a log file by SteamID. 3. Writing to the file-log: - Server connection - Reconnection - Disconnect from the server - Death by loss of blood/hunger - Death by Zombies - Death by player - DigIn / DigOut Stashes Functions: Y/M/D H/m/s > Player Name SteamID: ********************** Pos: <Position in map> Event 2021/4/13 15:25:31 > NAMEDPLAYER SteamID:************************ Pos:<13602.299805, 8.843118, 11217.331055> Connect

    6.00 USD

  7. 2 points
    Просмотреть файл Simple Logger. Server Mod. / Простой Логгер. Серверный Мод. Простой серверный мод для логгирования. Мод написан в ознакомительных целях и не несёт в себе авторских прав. Основные функции: Создание каталога в директории $profile Идентификация подключаемого пользователя и создание файл-лога по SteamID. Запись в файл-лог: Подключение к серверу / Player OnConnect Переподключение / Player OnReconnect Отключение от сервера / Player OnDisconnect Смерть при потере крови/голод/т.д / Self Dead Смерть от Зомби / Killer - Zombie Смерть от игрока / Killer - Player Закапывание / Выкапывание тайников | Stash Структура лога: Год/Месяц/День Час/Мин/Сек > Имя Игрока SteamID: ****тут понятно**** Pos: <Позиция на карте> Событие 2021/4/13 15:25:31 > NAMEDPLAYER SteamID:************************ Pos:<13602.299805, 8.843118, 11217.331055> Connect Цена символическая для поддержания собственного сервера. Simple server-side mod for user logging. The mod is written for informational purposes only and does not bear any copyright. Main functions: 1. Creating a directory in the $profile directory 2. Identifying the connected user and creating a log file by SteamID. 3. Writing to the file-log: - Server connection - Reconnection - Disconnect from the server - Death by loss of blood/hunger - Death by Zombies - Death by player - DigIn / DigOut Stashes Functions: Y/M/D H/m/s > Player Name SteamID: ********************** Pos: <Position in map> Event 2021/4/13 15:25:31 > NAMEDPLAYER SteamID:************************ Pos:<13602.299805, 8.843118, 11217.331055> Connect Автор Aior Добавлен 13.04.2021 Категория Скрипты, моды, карты и т.д.  
  8. 2 points
    Заблудился как-то вояка-контрактник в зоне. Ходит и кричит: — Людиии! Кто нибууудь, помогиииите! А в кустах, значит, сталкер сидит и тихо прется. — Ну да, ну да… Значит на блок-посту по три шкуры драть, так козлы и ублюдки… а как залез в ж*пу — так «Люди, помогите»… Вот так и тут. Как писать пост о помощи дак первые, а как другим помочь - сразу нос в карман. Не будьте такими. От того, что мы делимся знаниями - все в выигрыше.
  9. 2 points
    Так. Мы почитали на гитхабе, я протестил и стало понятно следующее: в случае, когда limit = «child» (<limit>child</limit>) нижеуказанные параметры работают следующим образом: <event name="AnimalCow"> <nominal>5</nominal> -на карте будет всего 5 стай коров <min>3</min> в каждой стае будет от трёх... <max>7</max> ...до семи коров. Но помимо этого значение мин и макс есть и у шести чайлдов (коров) - эти значения, в данном случае, означают сколько животных каждого вида может быть в одной стае. Однако как это работает у куриц, которые не спавнятся стаями, не совсем понятно: там лимит указан Mixed а минимум и максимум вот так: <nominal>3</nominal> <min>0</min> <max>50</max> <children> <child lootmax="0" lootmin="0" max="2" min="1" type="Animal_GallusGallusDomesticus"/> <child lootmax="0" lootmin="0" max="4" min="1" type="Animal_GallusGallusDomesticusF_Brown"/> <child lootmax="0" lootmin="0" max="4" min="1" type="Animal_GallusGallusDomesticusF_Spotted"/> <child lootmax="0" lootmin="0" max="4" min="1" type="Animal_GallusGallusDomesticusF_White"/> </children> Короче с курами еще нужно поэкспериментировать. Ну и вот перевод с гитхаба: Значение limit (могут быть: custom, parent, child, mixed) определяет как будет считаться максимальное количество children. Custom - ссылается к внешнему файлу, такому как animals territories. (Как я понимаю в данном случае количество конкретных животных или зомби будет браться из внешнего файла а не из events) Child - обращается к мин и макс атрибутам каждого child’а. Parent - обращается к атрибутам min и max самого события. Mixed - это сочетание дочернего (child) и родительского (parent).
  10. 2 points
    Я отложил на оптимизацию Сеня закончил Протестировали Завтра после обеда будет тут Работы завал И еще неск модов Все по чуть чуть
  11. 2 points
    Игроки почти все знают А вот админы, особенно не играющие, типа меня - нет А было бы полезно - что бы пофиксить
  12. 2 points
    дай им доступ к дарту и все проблемы
  13. 2 points
    рекомундую всежтаки m_TransportHitVelocity.Length() < 1
  14. 2 points
    Показывает перелом и здоровье ног Medical.rar
  15. 2 points
    И по поводу менталитета тебе хочу написать, как ты считаешь твое воспитание или менталитет лучше ? )) Чем ты лучше тех кто ворует ? Ты защищаешь одних, тем самым прислуживая другим. Вы всей командой не боретесь с проблемой, а вылизываете. Может из-за выгоды может поднять свою значимость но это не важно. За менталитет ты говорить не имеешь права. Ибо я не знаю что у тебя за менталитет, но поступки ваши очень странные. Чем вы лучше повторюсь? Хотите сделать что-то полезное сделайте, хотите что-то изменить начните диалог в первую очередь тут, в Русской комьюнити но нет подучив язык ты решил пробиться, поверь я знаю о чем говорю) Через меня много таких подхалимов проходило, но я никогда не брал таких людей в команду! Ибо это и есть деградация коллектива, когда среди них есть крыса! Коллектив становиться сплочённее и сильнее за счет сильных людей в команде. Так что пожалуйста не ври хотя-бы себе, все что сейчас происходит, происходит из-за того что ты хочешь чего-то стоить. Но не в то русло ты пускаешь энергию и этот след будет тянуться за тобой. Но ты этого пока не понимаешь может в силу возраста, а может и в силу своего менталитета! И поверь комьюнити сейчас станет сильнее, но не за счет ВАС а ВОПРЕКИ ! ) А потом тебя забудут, и вспомнят только как Х**лана и то хорошо если вспомнят. Просто задумайся) И поверь я знаю что такое жить по законам, и ты совсем меня не удивил что ты все покупаешь, я уже как 10 лет всем лицензионным пользуюсь. И дабы людям привить это, с ними нужно беседовать и прививать это, ведь ты топишь за менталитет. На данный момент что вижу я, что увидел в группе в дисе где ты писал. Нет ты не упал в моих глазах ибо я видал много таких людей) Просто ты себе то не ври, зачем ты это делаешь! Не прикрывайся благими целями. Твое дело как воспринимать этот текст.
  16. 2 points
    И так, ребятки, вот вам небольшая 'полезняшка' от меня, и совершенно бесплатно! Описание: Скрипт, добавляющий админу сервера возможность указывать для каждого игрока индивидуальный скин спавна, его персональную точку спавна и один из имеющихся на сервере стартовых наборов с лутом, которые можно составить самим. Если указано несколько точек спавна и/или наборов лута, то будет выбран один из предложенных вариантов рандомно. Также, любой из названных параметров можно отключить в скрипте и сделать его стандартным, как он есть поумолчанию на сервере. Дополнительно - есть возможность назначить свой набор стартового лута для всех игроков на сервере не из списка скрипта! Нам понадобится: 1. Сервер DayZ 1.0, сделанный по одному из гайдов: 2. Notepad++ 3. Немножечко трезвого ума и понимания того, что мы делаем, и как прописывается лут на новом языке enfusion Установка: Перед установкой: Обратите внимание, что имя 'стандартной' миссии сервера при загрузки со Steam называется: 'dayzOffline.chernarusplus'. На хостингах имя этой папки может отличаться. Если это так, то вам в информации ниже необходимо заменить 'dayzOffline.chernarusplus' на имя вашей папки миссии сервера, иначе вы не сможете запустить сервер игры! 1. По пути: {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\ создать папку 'CustomSpawnPlayerConfig' и поместить в созданную нами папку 3 файла из следующего архива CustomSpawnPlayerConfig.rar или создать их самим со следующим содержанием: Script.c /* Описание: Скрипт выдачи индивидуального стартового лута, скина игрока и точек спавна Автор: 123new Установка: 1. По пути: {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\ создать папку 'CustomSpawnPlayerConfig' и поместить в нее 3 файла скрипта: Script.c Sets.c init_mod.c 2. В файле: {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\init.c в самом верху файла добавить: #include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\init_mod.c" 3. В папке, обозначенной параметром запуска сервера '-profile=', поместить файл с именем CustomSpawnPlayerConfig.txt и заполнить его данными по следующему формату: UID|Skin_player|sets_numbers|points_spawns где UID - это steam64id от профиля игрока в steam Skin_player - точный id скина игрока (можно указать 0 для отключения опции) sets_numbers - номер сета со стартовым лутом (можно указать несколько через ';', указать один всего, либо указать 0 для отключения опции) points_spawns - координаты спавна игрока на карте в формате 'x y z' (можно указать несколько через ';', указать всего одну точку, либо указать 0 для отключения опции) Пример: 76561198141889254|SurvivorM_Oliver|1|12955.091797 16.115206 7993.588379 76561198141889256|SurvivorM_Oliver|1;2|14791.965820 76.481781 14041.661133;12029.079102 196.356125 7274.689941 76561198141889253|SurvivorM_Oliver|0|0 4. В файле Sets.c в папке: {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\ настроить стартовый лут для ваших игроков и написать собственные сеты ВАЖНО: количество сетов можно делать любое, номера сетов брать от 1 и выше (не должно быть -1, либо 0, только от 1 и выше) Все что укажете в блоке default будет применено для всех игроков при респавне в случае, если им не выдан никакой сет! P.S. Прикрепить к соспавненному оружию магазин не получится, рабочего кода я не смог найти!! Если у вас папка активной миссии сервера отличается от dayzOffline.chernarusplus то переименуйте ее в строке, вписываемой в: {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\init.c {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\init_mod.c */ class CustomSpawnPlayerConfig { private string Location_Directory_config = "$profile:"; // Расположение папки с конфигом скрипта private string Location_filename_config = "CustomSpawnPlayerConfig.txt"; // имя файла с конфигом скрипта private string default_log_block_name = "[CustomSpawnPlayerConfig] "; // Стандартный блок скрипта для идентификации с script.log private string disable_read_parameter = "0"; // Стандартное значение (без кавычек) для обозначения в файле конфига скрипта неиспользование параметра private string block_split_parameters_config = "|"; // Символ, обозначающий разделение параметров при чтении файла конфига private string block_split_multi_parameters_config = ";"; // Символ, обозначающий перечисление в одной ячейке параметра нескольких параметров при чтении файла конфига private bool enabled_loading_custom_spawnpoints = true; // Параметр, включающий и отключающий возможность использования приватной точки спавна для каждого игрока. В случае отключения кастомная точка спавна будет отключена для всех поумолчанию, вне зависимости от данных в конфиге! private bool enabled_loading_custom_sets = true; // Параметр, включающий и отключающий возможность использования приватного сета для каждого игроков. В случае отключения выдача сетов будет отключена для всех поумолчанию, вне зависимости от данных в конфиге, будет выдаваться только сет для всех игроков! private bool enabled_loading_custom_skins = true; // Параметр, включающий и отключающий возможность использования индивидуального стартового скина игрока для каждого игрока. В случае отключения эта возможность будет отключена для всех поумолчанию, вне зависимости от данных в конфиге! // ------------------------------------------------------------ // ---------------- NEXT CODE DON'T EDIT ----------------- // ------------------------------------------------------------ ref map<string, ref array<vector>> players_spawnpoints = new map<string, ref array<vector> >; ref map<string, ref array<int>> players_sets = new map<string, ref array<int> >; ref map<string, string> players_skins = new map<string, string>; private bool enabled_loaded_successfull_config = false; string Log_CustomSpawnPlayerConfig_GetDateTime() { private int year, month, day, hour, minute, second; GetYearMonthDay(year, month, day); GetHourMinuteSecond(hour, minute, second); string returned_message = "[" + day.ToStringLen(2) + "." + month.ToStringLen(2) + "." + year.ToStringLen(2) + " - " + hour.ToStringLen(2) + "." + minute.ToStringLen(2) + "." + second.ToStringLen(2) + "] "; return returned_message; } bool Check_coords_disable(vector coord) { private bool ret_zn = false; private float pos_x = coord[0]; private float pos_y = coord[1]; private float pos_z = coord[2]; if ((pos_x == 0.0) & (pos_y == 0.0) & (pos_z == 0.0)) { ret_zn = true; } return ret_zn; } vector Set_Read_coords_disable() { return Vector(0.0, 0.0, 0.0); } void CustomSpawnPlayerConfig() { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + "CustomSpawnPlayerConfig initialize start!"); Read_Update_Config(); } void ~CustomSpawnPlayerConfig() { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + "CustomSpawnPlayerConfig work end, class closed!"); } void Read_Update_Config() { private string name_block_work = "[ReadAndUpdateSettings] "; Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + " Started Reading config!"); private array<string> readed_lines_config = ReadFileConfig(); private bool check_normal_read = AnaliseFileConfig(readed_lines_config); if (check_normal_read) { LoadFileConfig(readed_lines_config); Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "config readed successfull!"); enabled_loaded_successfull_config = true; } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "config read failed, work script disabled for players!"); enabled_loaded_successfull_config = false; } } array<string> ReadFileConfig() { private string name_block_work = "[ReadFileConfig] "; private array<string> readed_lines_config = new array<string>; readed_lines_config.Clear(); if (FileExist ( (Location_Directory_config + Location_filename_config) ) ) { private string line_content; FileHandle file = OpenFile((Location_Directory_config + Location_filename_config), FileMode.READ); Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Open file config: " + (Location_Directory_config + Location_filename_config)); if (file != 0) { while ( FGets( file, line_content ) > 0 ) { readed_lines_config.Insert( line_content); } CloseFile(file); } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "ERROR!!! CAN'T OPEN FILE CONFIG : " + (Location_Directory_config + Location_filename_config)); } //readed_lines_config.Debug(); } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "ERROR!!! CAN'T FOUND FILE CONFIG OR DIRECTORY: " + (Location_Directory_config + Location_filename_config)); } return readed_lines_config; } bool AnaliseFileConfig(array<string> readed_lines_config) { private bool return_zn = true; private string name_block_work = "[AnaliseFileConfig] "; if (readed_lines_config.Count() > 0) { foreach (string line : readed_lines_config) { if (line.Contains(block_split_parameters_config)) { private array<string> splited_line = new array<string>; line.Split( block_split_parameters_config, splited_line ); if (splited_line.Count() == 4) { private string UID_player = splited_line.Get(0); private string default_skin_player = splited_line.Get(1); private string sets_numbers_player = splited_line.Get(2); private string points_spawn_player = splited_line.Get(3); if ((UID_player == "") || (default_skin_player == "") || (sets_numbers_player == "") || (points_spawn_player == "")) { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "ERROR!!! Lines in Readed file is not correct, please, fix your config script!"); Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Line checking: " + line); return_zn = false; break; } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "ERROR!!! Readed file is have incorrect count parameters with a tag '" + block_split_parameters_config + "', please, fix your config script!"); Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Line checking: " + line); return_zn = false; break; } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "ERROR!!! Readed file can't have a tag '" + block_split_parameters_config + "', please, fix your config script!"); Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Line checking: " + line); return_zn = false; break; } } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "ERROR!!! Config file is empty, fix your config script!"); return_zn = false; } return return_zn; } void LoadFileConfig(array<string> readed_lines_config) { private string name_block_work = "[LoadFileConfig] "; players_spawnpoints.Clear(); players_sets.Clear(); players_skins.Clear(); foreach (string line : readed_lines_config) { private array<string> splited_line = new array<string>; splited_line.Clear(); line.Split( block_split_parameters_config, splited_line ); private string UID_player = splited_line.Get(0); private string default_skin_player = splited_line.Get(1); private string sets_numbers_player = splited_line.Get(2); private string points_spawn_player = splited_line.Get(3); private array<vector> temp_players_spawnpoints = new array<vector>; temp_players_spawnpoints.Clear(); array<int> temp_players_sets = new array<int>; temp_players_sets.Clear(); array<string> temp_players_spawnpoints_string = new array<string>; temp_players_spawnpoints_string.Clear(); array<string> temp_players_sets_string = new array<string>; temp_players_sets_string.Clear(); if (points_spawn_player.Contains(block_split_multi_parameters_config)) { points_spawn_player.Split( block_split_multi_parameters_config, temp_players_spawnpoints_string ); } else { temp_players_spawnpoints_string.Insert(points_spawn_player); } foreach (string line_spawnpoint : temp_players_spawnpoints_string) { if (line_spawnpoint == disable_read_parameter) { temp_players_spawnpoints.Insert(Set_Read_coords_disable()); } else { temp_players_spawnpoints.Insert(line_spawnpoint.ToVector()); } } Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Generated massive for " + UID_player + " with " + temp_players_spawnpoints.Count().ToString() + " spawnpoints."); if (sets_numbers_player.Contains(block_split_multi_parameters_config)) { sets_numbers_player.Split( block_split_multi_parameters_config, temp_players_sets_string ); } else { temp_players_sets_string.Insert(sets_numbers_player); } foreach (string line_set : temp_players_sets_string) { if (line_set == disable_read_parameter) { temp_players_sets.Insert(0); } else { temp_players_sets.Insert(line_set.ToInt()); } } if (default_skin_player == disable_read_parameter) { default_skin_player = "0"; } Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Generated massive for " + UID_player + " with " + temp_players_sets.Count().ToString() + " sets."); Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Detected for " + UID_player + " skin " + default_skin_player); players_spawnpoints.Insert(UID_player,temp_players_spawnpoints); players_sets.Insert(UID_player,temp_players_sets); players_skins.Insert(UID_player,default_skin_player); } } vector Load_And_Check_Spawnpoints(PlayerIdentity identity, vector pos_default) { private string name_block_work = "[Load_And_Check_Spawnpoints] "; private vector retun_pos = pos_default; if(identity) { private string Name_P = identity.GetName(); private string UID_P = identity.GetPlainId(); private string Game_UID_P = identity.GetId(); private string Game_ID_P = identity.GetPlayerId().ToString(); if (enabled_loading_custom_spawnpoints) { if ((players_spawnpoints.Count() > 0) && (enabled_loaded_successfull_config)) { if (players_spawnpoints.Contains(UID_P)) { private array<vector> readed_lines_config = new array<vector>; readed_lines_config = players_spawnpoints.Get(UID_P); private vector retun_pos_check = readed_lines_config.GetRandomElement(); if (Check_coords_disable(retun_pos_check)) { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") disabled loading private spawn point. Will be used default spawn point!"); } else { retun_pos = retun_pos_check; Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") setuped private spawn point: " + retun_pos.ToString()); } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Can't founded private spawnpoint for player " + Name_P + "(steam64id=" + UID_P + ")"); } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Config script is incorrect, checking private spawnpoints is disabled! Player: " + Name_P + "(steam64id=" + UID_P + ")"); } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "disabled loading personal spawnpoints from config file script!"); } } Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") will be used spawn point: " + retun_pos.ToString()); return retun_pos; } string Load_And_Check_SpawnSkin_Player(PlayerIdentity identity, string characterName) { private string name_block_work = "[SelectStartSkinPlayer] "; private string retun_skin = characterName; if(identity) { private string Name_P = identity.GetName(); private string UID_P = identity.GetPlainId(); private string Game_UID_P = identity.GetId(); private string Game_ID_P = identity.GetPlayerId().ToString(); if (enabled_loading_custom_skins) { if (players_skins.Count() > 0) { if (players_skins.Contains(UID_P)) { private string readed_skin = players_skins.Get(UID_P); if (readed_skin == "0") { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") disabled loading private skin setting, will be used default setting game!"); } else { retun_skin = readed_skin; Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") setuped private skin setting: " + retun_skin); } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Can't founded private skin setting for player " + Name_P + "(steam64id=" + UID_P + ")"); } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Config script is incorrect, checking private skin setting is disabled! Player: " + Name_P + "(steam64id=" + UID_P + ")"); } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "disabled loading personal skin player settings from config file script!"); } } Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") will be used skin: " + retun_skin); return retun_skin; } void Load_And_Check_StartLoadout(PlayerBase player) { private string name_block_work = "[SelectStartSetPlayer] "; private int use_set_id = -1; private PlayerIdentity identity = player.GetIdentity(); if(identity) { private string Name_P = identity.GetName(); private string UID_P = identity.GetPlainId(); private string Game_UID_P = identity.GetId(); private string Game_ID_P = identity.GetPlayerId().ToString(); if (enabled_loading_custom_sets) { if ((players_sets.Count() > 0) && (enabled_loaded_successfull_config)) { if (players_sets.Contains(UID_P)) { private array<int> readed_lines_config = new array<int>; readed_lines_config.Clear(); readed_lines_config = players_sets.Get(UID_P); private int chek_use_set_id = readed_lines_config.GetRandomElement(); if (chek_use_set_id == 0) { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") disabled loading private set numbers. Will be used default set player! "); } else { use_set_id = chek_use_set_id; Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") setuped private set number is: " + use_set_id.ToString()); } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Can't founded private sets for player " + Name_P + "(steam64id=" + UID_P + ")"); } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Config script is incorrect, checking private sets is disabled! Player: " + Name_P + "(steam64id=" + UID_P + ")"); } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "disabled loading personal loadout sets player settings from config file script! Will be used default loadout!"); } if (use_set_id >= 0) { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") will be used spawn set with number is: " + use_set_id.ToString()); } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") will be used spawn default start set without number. "); } StartSetsPlayers.StartSetsPlayer(player, use_set_id); } } private array<EntityAI> GetItemListinobject(PlayerBase player,EntityAI item, bool check_player) { array<EntityAI> EntityAI_list_items = new array<EntityAI>; EntityAI_list_items.Clear(); int attIdx = 0; int attCount = 0; EntityAI item_in_object; if ((player) && (check_player)) { attCount = player.GetInventory().AttachmentCount(); for (attIdx = 0; attIdx < attCount; attIdx++) { item_in_object = player.GetInventory().GetAttachmentFromIndex(attIdx); if ( item_in_object.IsItemBase() ) { EntityAI_list_items.Insert(item_in_object); } } } if ((item) && !check_player) { attCount = item.GetInventory().AttachmentCount(); for (attIdx = 0; attIdx < attCount; attIdx++) { item_in_object = item.GetInventory().GetAttachmentFromIndex(attIdx); if ( item_in_object.IsItemBase() ) { EntityAI_list_items.Insert(item_in_object); } } } return EntityAI_list_items; } void RemoveAllItems (PlayerBase player) { private array<EntityAI> ItemListPlayer = new array<EntityAI>; private array<EntityAI> ItemsForDelete = new array<EntityAI>; private EntityAI itemInHands_player = player.GetHumanInventory().GetEntityInHands(); if (itemInHands_player != NULL) { if (player.CanDropEntity(itemInHands_player) && player.GetHumanInventory().CanRemoveEntityInHands()) { // Print("ItemForDelete: " + itemInHands_player.ToString()); ItemsForDelete.Insert(itemInHands_player); } } ItemListPlayer = GetItemListinobject(player,NULL,true); if (ItemListPlayer.Count() > 0) { foreach(EntityAI ItemPlayer: ItemListPlayer) { private array<EntityAI> ItemInItemInInventory = GetItemListinobject(NULL,ItemPlayer,false); private CargoBase cargo = ItemPlayer.GetInventory().GetCargo(); if(cargo) { if (cargo.GetItemCount() > 0) { for (int f = 0; f < cargo.GetItemCount(); f++) { if(cargo.GetItem(f)) { ItemsForDelete.Insert(cargo.GetItem(f)); } } } } if (ItemInItemInInventory.Count() > 0) { foreach(EntityAI items_temp: ItemInItemInInventory) { if(items_temp) { ItemsForDelete.Insert(items_temp); } } } if(ItemPlayer) { ItemsForDelete.Insert(ItemPlayer); } } } if (ItemsForDelete.Count() > 0) { foreach(EntityAI item_temp: ItemsForDelete) { if(item_temp) { GetGame().ObjectDelete(item_temp); } } } } }; Sets.c class StartSetsPlayersConfig { void StartSetsPlayer(PlayerBase player,int use_set_id) { EntityAI itemCreated = NULL; EntityAI itemCreated1 = NULL; ItemBase itemCasted = NULL; switch( use_set_id ) //Раздаем лут (можно использовать значения от 1 и выше, только не 0 и не -1) { case 1: //Set with number 1 (Сет с номером 1) { My_Custom_Spawn_Parameters.RemoveAllItems(player); // Чтобы удалить с персонажа уже имеющиеся стандартные стартовые шмотки раскомментировать строку itemCreated = player.GetInventory().CreateInInventory("CoyoteBag_Green"); // Выдаем рюкзак и записываем в переменную itemCreated if (itemCreated) // Проверяем, создался ли рюкзак. Если он создался, переменная itemCreated будет не пуста и проверка пройдет { SetRandomHealthItem(itemCreated); // Выдаем рюкзаку рандомное качество itemCreated1 = itemCreated.GetInventory().CreateInInventory("Apple"); // Добавляем в инвентарь созданного рюкзака яблоко и записываем в переменную itemCreated1 if (itemCreated1) // Проверяем, создалось ли яблоко в рюкзаке, яблоко у нас с переменной itemCreated1 { SetRandomHealthItem(itemCreated1); // Выдаем яблоку рандомное качество } itemCreated1 = NULL; // Обнуляем значение переменной после работы с ней, чтобы следующая проверка прошла корректно itemCreated1 = itemCreated.GetInventory().CreateInInventory("Rag"); // Выдаем игроку бинты в рюкзак и записываем в переменную itemCreated1 if (itemCreated1) // Проверяем, создались ли бинты в рюкзаке, они у нас с переменной itemCreated1 { itemCasted = ItemBase.Cast(itemCreated1); // Выполняем преобразование в другой класс для работы с нужной нам функцией, поскольку в классе EntityAI нет нужной нам функции SetQuantity, а в подклассе ItemBase она есть. Предмет при этом так и остается один и тот же! itemCasted.SetQuantity(4); // Определяем количество для созданных бинтов как 4 штуки SetRandomHealthItem(itemCreated); // Выдаем бинтам рандомное качество, функция работает с классом EntityAI (см. в конфе файла) } } // переменную itemCreated не обнуляем далее, поскольку мы ее не используем в проверке ниже. itemCreated = player.GetInventory().CreateInInventory("TTSKOPants"); // Выдаем игроку штаны itemCreated = player.GetInventory().CreateInInventory("TTsKOJacket_Camo"); // Выдаем игроку куртку itemCreated = player.GetInventory().CreateInInventory("CombatBoots_Black"); // Выдаем игроку обувь //itemCasted = ItemBase.Cast(itemCreated); // Строка не нужна, закоментирована. используется для изменения класса EntityAI в ItemBase (чтобы нужные операции были доступны) itemCreated = player.GetInventory().CreateInInventory("CombatKnife"); // Выдаем игроку ножик в любой свободный слот в инвентаре itemCreated = player.GetInventory().CreateInInventory("FNX45"); // Выдаем игроку FNX в любой свободный слот в инвентаре itemCreated = player.GetInventory().CreateInInventory("Mag_FNX45_15Rnd"); // Выдаем игроку магазины к FNX в любой свободный слот в инвентаре itemCreated = player.GetInventory().CreateInInventory("Mag_FNX45_15Rnd"); // Выдаем игроку магазины к FNX в любой свободный слот в инвентаре itemCreated = player.GetInventory().CreateInInventory("Mag_AKM_30Rnd"); // Выдаем игроку магазины к AKM в любой свободный слот в инвентаре itemCreated = player.GetInventory().CreateInInventory("Mag_AKM_30Rnd"); // Выдаем игроку магазины к AKM в любой свободный слот в инвентаре itemCreated = NULL; // Обнуляем значение переменной после работы с ней, нужно если мы будем использовать ее далее itemCreated = player.GetHumanInventory().CreateInHands("akm"); // Выдаем игроку AKM в руки if (itemCreated) // Проверяем, создался ли АКМ { itemCreated.GetInventory().CreateAttachment( "PSO11Optic" ); // Выдаем игроку на AKM оптику ПСО 11 и крепим itemCreated.GetInventory().CreateAttachment( "AK_WoodBttstck" ); // Выдаем игроку на AKM цевье, приклад и глушитель, и крепим itemCreated.GetInventory().CreateAttachment( "AK_WoodHndgrd" ); // Выдаем игроку на AKM цевье, приклад и глушитель, и крепим itemCreated.GetInventory().CreateAttachment( "AK_Suppressor" ); // Выдаем игроку на AKM цевье, приклад и глушитель, и крепим } break; } case 2: //Set with number 2 (Сет с номером 2) { break; } case 3: //Set with number 3 (Сет с номером 3) { break; } case 4: //Set with number 4 (Сет с номером 4) { break; } case 5: //Set with number 5 (Сет с номером 5) { break; } case 6: //Set with number 6 (Сет с номером 6) { break; } default: //Default starting spawn set (Сет поумолчанию для всех игроков, если хотите назначить - добавляйте здесь!) { //My_Custom_Spawn_Parameters.RemoveAllItems(player); // Чтобы удалить с персонажа уже имеющиеся стандартные стартовые шмотки раскомментировать строку DefaultSets(player); // Для выдачи своих сетов по рандому всем игрокам, не прописанным в скрипте, раскомментировать эту строку break; } } } void SetRandomHealthItem(EntityAI itemCreated) // Функция генерирует и применяет для предмета рандомное значение здоровья! { if ( itemCreated ) { private int rndHlt = Math.RandomInt(55,6); itemCreated.SetHealth("","",rndHlt); } } void DefaultSets(PlayerBase player) // Функция выдает сеты игрокам, не прописанным в конфигурации скрипта!!! { EntityAI itemCreated = NULL; EntityAI itemCreated1 = NULL; ItemBase itemCasted = NULL; // ниже пример, если вам нужно задать свои точки спавна для всех игроков. Этот код можно также использовать и для каждого сета индивидуально! // Код закомментирован, если это надо - раскомментируйте! // начало кода точек спавна игрока /* private array <vector> spawnpoints = {"7500 0 7500", "7500 0 7500","7500 0 7500", "7500 0 7500"}; private vector selected_spawnpoint = spawnpoints.GetRandomElement(); player.SetPosition(selected_spawnpoint); */ // конец кода точек спавна игрока private int random_set_number = Math.RandomIntInclusive(1,6); // генерируем рандом номер сета от 1 до 6 включительно (по значениям блоков case ниже) switch( random_set_number ) //Раздаем лут (можно использовать значения от 1 и выше, только не 0 и не -1) { case 1: //Set with number 1 (Сет с номером 1) { break; } case 2: //Set with number 2 (Сет с номером 2) { break; } case 3: //Set with number 3 (Сет с номером 3) { break; } case 4: //Set with number 4 (Сет с номером 4) { break; } case 5: //Set with number 5 (Сет с номером 5) { break; } case 6: //Set with number 6 (Сет с номером 6) { break; } default: //Default starting spawn set (Сет поумолчанию для всех игроков, в случае если ни один из сетов выше не выпал. { //My_Custom_Spawn_Parameters.RemoveAllItems(player); // Чтобы удалить с персонажа уже имеющиеся стандартные стартовые шмотки раскомментировать строку break; } } } } init_mod.c #include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\Script.c" #include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\Sets.c" ref CustomSpawnPlayerConfig My_Custom_Spawn_Parameters = new CustomSpawnPlayerConfig(); ref StartSetsPlayersConfig StartSetsPlayers = new StartSetsPlayersConfig(); modded class CustomMission { override void OnInit () { super.OnInit(); GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(My_Custom_Spawn_Parameters.Read_Update_Config, 120000, true); // Обновление настроек скрипта кастомных спавнов, 1 минута = 60000 } override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName) { pos = My_Custom_Spawn_Parameters.Load_And_Check_Spawnpoints(identity, pos); characterName = My_Custom_Spawn_Parameters.Load_And_Check_SpawnSkin_Player(identity, characterName); super.CreateCharacter(identity, pos, ctx, characterName); return m_player; } override void StartingEquipSetup(PlayerBase player, bool clothesChosen) { super.StartingEquipSetup(player, clothesChosen); My_Custom_Spawn_Parameters.Load_And_Check_StartLoadout(player); } } 2. В файле: {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\init.c в самом верху файла добавить: #include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\init_mod.c" Чтобы получилось примерно так 3. В папке, обозначенной параметром запуска сервера '-profile=', поместить файл с именем CustomSpawnPlayerConfig.txt и заполнить его данными по следующему формату: UID|Skin_player|sets_numbers|points_spawns где UID - это steam64id от профиля игрока в steam Skin_player - точный id скина игрока (можно указать 0 для отключения опции) sets_numbers - номер сета со стартовым лутом (можно указать несколько через ';', указать один всего, либо указать 0 для отключения опции) points_spawns - координаты спавна игрока на карте в формате 'x y z' (можно указать несколько через ';', указать всего одну точку, либо указать 0 для отключения опции) Пример: CustomSpawnPlayerConfig.txt 76561198141889254|SurvivorM_Oliver|1|12955.091797 16.115206 7993.588379 76561198141889256|SurvivorM_Oliver|1;2|14791.965820 76.481781 14041.661133;12029.079102 196.356125 7274.689941 76561198141889253|SurvivorM_Oliver|0|0 4. В файле Sets.c в папке: {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\ настроить стартовый лут для ваших игроков и написать собственные сеты ВАЖНО: количество сетов можно делать любое, номера сетов брать от 1 и выше (не должно быть -1, либо 0, только от 1 и выше) Все что укажете в блоке default будет применено для всех игроков при респавне в случае, если им не выдан никакой сет! Поумолчанию в функции default вызывается функция DefaultSets, позволяющая рандомно выбирать любой из сетов для игроков, которым сет не задан в конфигурации скрипта. Принцип составления сетов такой же, как и выше. Если будете пользоваться этим, обратите вниманием на строку: private int random_set_number = Math.RandomIntInclusive(1,6); Эта функция генерирует число от 1 до 6 включительно. Соответственно если сетов будет больше 6, то число надо корректировать и тут тоже! P.S. Прикрепить к соспавненному оружию магазин не получится, рабочего кода я не смог найти!! Если у вас папка активной миссии сервера отличается от dayzOffline.chernarusplus то переименуйте ее в строке, вписываемой в: {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\init.c {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\init_mod.c Благодарности: Товарищу Mizev за его первоначальные гайды в группе VK при появлении в сети серверной части игры
  17. 1 point
    Балабол здесь только ты, мои обвинения основаны доказательствами - твои отмазы основаны на бла бла ) но ты молодец всем показал что можешь так поступать) взять деньги, кинуть страйк из-за личных побуждений! Что кстати, ещё раз говорит о твоем не профессионализме. Т.Е. тебя как девочку можно обидеть и зацепить, при чём указав на твои кривые руки! И поверь тут создана тема не для того, что бы тебя задеть , а что бы новые админы у которых ещё мало опыта - знали с кем не стоит иметь дело и чем может закончится сотрудничество с тобой ! И твоё балабольство ты сам же и подтверждаешь, что я один страдаю! Как оказалось - не один! И много кто из мододелов наслышан о тебе - шут гороховый
  18. 1 point
    Yuki

    DimA Мошенник и кидала

    @siman так ничего удивительного. Я говорю, дальше покупайте так моды с "репаком". Придёт дурачок владелец и тупо кинет страйк вашему моду, если вы вдруг ему стали неугодны. Как последняя крыса, да.
  19. 1 point
    Раскидал чтобы было видно где тайпсы, а где аттачменты. Можно всё в одной папке располагать, но для удобности использую разные. Если будешь добавлять другие тайпсы или аттачменты их нужно кидать в соответствующую папку, название файла не имеет значение, но я делаю их по названию модов чтобы не запутаться
  20. 1 point
    paranoyk

    VPPAdminTools новый бэкдор.

    ..."отмоддил публично"-занесть в архивы, отлить в граните! Кстати, а как стим относится к подобным "закладкам" которые незадокоментированы? Нет ли тут попытки взлома и управления чужой собственностью, приём инструмент взлома распространяет сам стим?
  21. 1 point
    TED

    DimA Мошенник и кидала

    Тебе бы для начала научиться писать правильно, а потом уже только проекты держать, да людей нормальных грязью поливать🤡
  22. 1 point
    BorizzK

    VPPAdminTools новый бэкдор.

    Все Даон отказался от своей хитроумной задумки по мониторингу итп - убрал все свое добро из мода Может временно - фиг знает Вобщем пока расходимся
  23. 1 point
    изучите тему
  24. 1 point
    BorizzK

    VPPAdminTools новый бэкдор.

    Я думал он китаец Ну вобщем сделано ))) можно и в клиент и в сервер - просто МОД на МОД никаких взаимоствований итп ))) утром выложу
  25. 1 point
    scripts.rarДержи
  26. 1 point
    paranoyk

    Смена модели HeliCrash

    Дым-к другим. А)Качаем мод с танком Б) Делаем для танка "сетку лута" В)Делаем ивент с танком...профит.
  27. 1 point
    Balooman

    Ключи машин

    bookbiblie, -1, 100 вот так будет только на продажу
  28. 1 point
    andr1820

    Трактор TR142

    А какая именно ошибка возникает?
  29. 1 point
    paranoyk

    Эффект матрёжки

    Урбать мод который так делает.
  30. 1 point
    https://www.youtube.com/watch?v=ZsiusNxRFrE&t=2754s
  31. 1 point
    Все должно одинаково быть, карта высоты, текстура, нормали и маска Первое господне творение это карта высоты ( Земля ), потом все остальное, людей в последнюю очередь 🙂
  32. 1 point
    Конечно.
  33. 1 point
    BorizzK

    Нету спавна

    Ошибка в xml файлах )))
  34. 1 point
    Balooman

    CF TOOLS

    cftools и omega manager это не хостинг, это администрирование и управление. web хостинг возьми любой, платный/бесплатный, главное чтобы был с поддержкой php, через ftp залей хук на свой web хост (как я понимаю ты хочешь использовать kf от snakzi) и укажи ссылку, например, https://твойсайт.ru/hooks/index.php, где https://твойсайт.ru/ - это доменный адрес твоего сайта, /hooks/ - это папка, где лежит твой хук (либо можешь вообще в корень сайта залить и не указывать папку), index.php - непосредственно сам киллфид хук (только не забудь заполнить в нем данные)
  35. 1 point
    Grob4k

    Кастомные здания

    https://steamcommunity.com/sharedfiles/filedetails/?id=2307297070&searchtext=Building
  36. 1 point
    paranoyk

    Кастомные здания

    Типа такой "зенит" сделать? Оффлайн редактор+мод БилдерИтем....
  37. 1 point
    модить надо серверным модом, а не изменением родного файла.
  38. 1 point
    Короче сделал максимально просто и все работает хорошо, фпс не проседает override bool ActionCondition ( PlayerBase player, ActionTarget target, ItemBase item ) { if (player.FireInInventory() || player.IsPlayerNearbyGasObject() || player.IsPlayerNearbyFireplace()) { return true; } return false; } Добавил проверку на наличие рядом источников огня, можно объединить в 1 функцию, но мне нужно 2. В общем вопрос закрыт, спасибо что собрались. Поставил всем кто поучаствовал +rep
  39. 1 point
    Речь пойдет о camoSelections. С помощью этого параметра можно менять текстуры и материалы на понравившихся вам моделях, через конфигурационные файлы. Далее описываю своим словами.... Главное чтобы модель содержала специальные выделеные для ретекстура группы полигонов (selection), а так же содеражала ссылки на эти группы полигонов в model.cfg. Узнать есть или нет такие группы полигонов можно с помощью программы Elitness (из пакета микеро) на данном скрине видно наличие в 0 (визуальном лоде) выделения под именем CamoMale и ссылку на него в model.cfg. В дейз есть несколько вариантов Camo: CamoGround - для вещей лежащих на земле и отображаемых в инвентаре, CamoMale - мужской скин, CamoFemale - женский скин. Соответственно в каждом из вариантов 3d модели (на земле/мужская/женская) будет свой selections, но конфиг у них будет общий. Таким образом, если модель годна для ретекстура (selection может быть, но не обязан), все что надо сделать кроме текстур, это создать собственный конфиг. Логика конфигов в Dayz содержит принцип наследования. Чтобы не писать одно и тоже для однотипных моделей, мы можем просто ссылаться на некий базовый конфиг и забирать параметры из него. Показываю технологию на примере рюкзака aliceBackPack, но те же самые принципы будут работать для любой модели в Dayz. Объясню на примере листинга конфига этого рюкзака.. class CfgPatches { class olke_Characters_Backpack //путь к проекту { units[]= { "AliceBag_ClearSky" // класс модели в конфиге }; weapons[]={}; requiredVersion=0.1; requiredAddons[]= { "DZ_Characters" // ссылка на требуемый аддон в Dayz (без него работать не будет). }; }; }; class cfgVehicles // объявляем класс Vehicles { /* инциализируем базовые класс (можно посмотреть в ванильном конфиге для любого вашего предмета) все эти классы уже описаны в Dayz и все что нам надо сделать это просто вызвать их. */ // инициализируем общий для всей одежды класс Clothing_Base class Clothing_Base; // инициализируем общий для всей одежды класс Clothing class Clothing: Clothing_Base {}; // а вот тут мы инициализируем ваниальный рюкзак AliceBag_ColorBase - как базовый. class AliceBag_ColorBase: Clothing {}; /* Далее, объясню понятее, сначала указываем имя нашего класса, в нашем случае это AliceBag_ClearSky затем через : мы указываем тот класс с которого мы заберем все параметры В нашем случае это проинициализированный выше AliceBag_ColorBase в скобках {}; мы указываем только те параметры которые хотим поменять */ class AliceBag_ClearSky: AliceBag_ColorBase { /* базовые классы обычно невидимы, scope=0 поэтому нелишним будет указать для своего класса ,чтобы наш видим */ scope=2; /* модификатор видимости влияет на степень видимости для зомби */ visibilityModifier=0.69999999; /* Теперь переходим к теме вопроса базовый класс содержит параметры hiddenSelections[] = {"camoGround","camoMale","camoFemale"}; т.е. все три selection на земле, мужской и женский со всех трех моделей, поэтому нам этот параметр указывать не обязательно. В своем конфиге мы укажем только пути к этим трем текстурам*/ hiddenSelectionsTextures[]= { "\olke\characters\backpack\data\alicebackpack_ClearSkyG_co.paa", //на земле "\olke\characters\backpack\data\alicebackpack_ClearSkyM_co.paa", //мужской "\olke\characters\backpack\data\alicebackpack_ClearSkyF_co.paa" //женский }; }; }; Т.к. текстура отражает разную поверхность и материалы, на эти же camo можно положить через конфиг не только диффузную текстуру _co но и материал.. hiddenSelectionsMaterials[]= { "\olke\characters\backpack\data\alicebackpack_ClearSkyG.rvmat", //на земле "\olke\characters\backpack\data\alicebackpack_ClearSkyM.rvmat", //мужской "\olke\characters\backpack\data\alicebackpack_ClearSkyF.rvmat" //женский }; Таким образом в итоге получится что-то типа.... class CfgPatches { class olke_Characters_Backpack units[]= { "AliceBag_ClearSky" }; weapons[]={}; requiredVersion=0.1; requiredAddons[]= { "DZ_Characters" }; }; }; class cfgVehicles { class Clothing_Base; class Clothing: Clothing_Base {}; class AliceBag_ColorBase: Clothing {}; class AliceBag_ClearSky: AliceBag_ColorBase { scope=2; visibilityModifier=0.69999999; hiddenSelections[] = {"camoGround","camoMale","camoFemale"}; hiddenSelectionsTextures[]= { "\olke\characters\backpack\data\alicebackpack_ClearSkyG_co.paa", //на земле "\olke\characters\backpack\data\alicebackpack_ClearSkyM_co.paa", //мужской "\olke\characters\backpack\data\alicebackpack_ClearSkyF_co.paa" //женский }; hiddenSelectionsMaterials[]= { "\olke\characters\backpack\data\alicebackpack_ClearSkyG.rvmat", //на земле "\olke\characters\backpack\data\alicebackpack_ClearSkyM.rvmat", //мужской "\olke\characters\backpack\data\alicebackpack_ClearSkyF.rvmat" //женский }; }; }; По такому же принципу работает любой ретекстур. Инициализируем базовые классы -> привызываем к ним свою модель-> определяем через параметр HiddenSelections - выделения, через HiddenSelectionTextures и HiddenSelectionMaterials - задаем текстуры и материал.
  40. 1 point
    Нет конечно
  41. 1 point
    BorizzK

    Code lock на авто

    Нет этого нигде Сами Вы вряд ли осилите Для осмысления - надо будет моддидь каждую тачку к корой Вы хотите прикрутить кодлок Опять же Через слот онли Сделать что бы он красиво весел на двери или что бы был экшан при наведении курсора на дверь - повесить кодлок - нереально Либо надо переделывать модель и лепить на нее прокси Насчет последнего (прокси) могу и ошибасться
  42. 1 point
    Доброго времени суток. Столкнулся с проблемой, что после каждого рестарта, игроков откидывает на несколько метров от точки где они вышли. Тобишь после каждого рестарта получается маленький откат сервера. Знаю ещё что во время рестарта есть возможность дюпать вещи. Вот вопрос заключается в том, чтобы кидать игроков за 3 минуты до рестарта. Как это можно сделать на сервере который стоит на хостинге? На сервере происходит рестарт соотвественно настройкам в планировщике задач на хостинге.
  43. 1 point
    Banda

    Автокик перед рестартом

    Если FTP то да не подойдет это писать хостингу надо !
  44. 1 point
    Пару раз в неделю вижу темы " FS (FIDOv STALKER) помогите поставить мутантов" И в большей части тем я помогал.. но хватит. Прочел? Помог? Поставь + И так. Обучать я буду только по одному типу тварей основанных на скелете волков. Какие файлы будем править. 1. events.xml 2. wolf_territories.xml 3. types.xml Поехали 1 Изменяем евент волков на нужных нам тварей (пример слепыши) <event name="AnimalWolf"> <waves>0</waves> <nominal>50</nominal> <min>2</min> <max>4</max> <lifetime>180</lifetime> <restock>0</restock> <saferadius>200</saferadius> <distanceradius>0</distanceradius> <cleanupradius>0</cleanupradius> <flags deletable="0" init_random="0" remove_damaged="1"/> <position>fixed</position> <limit>child</limit> <active>1</active> <children> <child lootmax="0" lootmin="0" max="2" min="1" type="FS_SlepDog_red"/> <child lootmax="0" lootmin="0" max="2" min="1" type="FS_SlepDog_Bronza"/> <child lootmax="0" lootmin="0" max="2" min="1" type="FS_SlepDog_Zmb"/> <child lootmax="0" lootmin="0" max="2" min="1" type="FS_SlepDog_White"/> <child lootmax="0" lootmin="0" max="1" min="1" type="FS_PseDOG"/> <child lootmax="0" lootmin="0" max="1" min="1" type="FS_WolfZmb_black"/> </children> <min>2</min> - минимальное количество в стае <max>4</max> - максимальное количество в стае max="2" min="1" -количество особей в стае На этом настройка файла event.xml окончена. 2. wolf_territories.xml <territory color="4289111595"> <zone name="Rest" smin="0" smax="0" dmin="0" dmax="0" x="7642.5" z="6180" r="50"/> <zone name="Water" smin="0" smax="0" dmin="0" dmax="0" x="7712.22" z="6416.39" r="50"/> <zone name="HuntingGround" smin="0" smax="0" dmin="0" dmax="0" x="7866.11" z="6142.5" r="50"/> </territory> Просто впиши свои координаты и все. не нужно больше не чего делать, 3. Пропиши мутантов в тайпс (Тайпса под рукой нет позже скину что вставить в тайпс нужно) Вайпай карту и проверяй. Есть способ куда проще и цивильнее о нем я опишу позже.
  45. 1 point
    репутацию мне можешь +1 сделать))) За помощь)
  46. 1 point
    А разве Deer это и есть клас нейм оленя?
  47. 0 points
    Судя по пастоновке вопроса, для Вас - никак.
  48. 0 points
    Ха Действительно - раньше было важно что в аддонс А теперь еще и имя папки играет роль Нафига они это сделали...
  49. 0 points
    modded class имякласса в моде { тип пременнаявтомклассе = новоезначение override тип функция (ее параметры) { меняем на что нужно } } тупо моддинг пакуем в свой мод в параметрах мода в cpp обязательно указать зависимость - тогда твой код точно перекроет код того мода все
  50. 0 points
    brodyaga777

    Подземелье

    нет
×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.