Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной

Таблица лидеров


Популярные публикации

Отображаются публикации с наибольшей репутацией на 09/28/18 в Сообщения

  1. 1 балл
    DrTauren

    xsSpawn - Спавн на земле\в воздухе

    Данный скрипт заменяет экран появления персонажа Exile на новый, дающий возможность выбора спавна на земле, либо в воздухе. Также есть возможность добавить логотип сервера и короткие сообщения с какой-либо информацией Что нам понадобится: xsSpawn-master.zip Либо скачать архив с Github Инструкция: 1) Копируем папку xs из архива в папку с миссией 2) Открываем description.ext и копируем в самый низ следующий код: #include "xs\spawn\Dialog\xsSpawnDefines.hpp" #include "xs\spawn\Dialog\xsSpawnDiaglog.hpp" 3) Открываем config.cpp в папке миссии, находим класс CfgExileCustomCode и вставляем в него этот код: //Spawn Selection by bambam ExileClient_gui_selectSpawnLocation_event_onSpawnButtonClick = "xs\spawn\Overwrites\ExileClient_gui_selectSpawnLocation_event_onSpawnButtonClick.sqf"; ExileClient_gui_selectSpawnLocation_show = "xs\spawn\Overwrites\ExileClient_gui_selectSpawnLocation_show.sqf"; ExileClient_gui_selectSpawnLocation_zoomToMarker = "xs\spawn\Overwrites\ExileClient_gui_selectSpawnLocation_zoomToMarker.sqf"; ExileClient_gui_selectSpawnLocation_event_onListBoxSelectionChanged = "xs\spawn\Overwrites\ExileClient_gui_selectSpawnLocation_event_onListBoxSelectionChanged.sqf"; ExileServer_object_player_createBambi = "xs\spawn\Overwrites\ExileServer_object_player_createBambi.sqf"; Должно получиться следующее: 4) Открываем файл xs\spawn\Overwrites\ExileClient_gui_selectSpawnLocation_show.sqf и находим внизу сообщения, которые показываются игроку на экране спавна. Каждый раз во время спавна системой выбирается одно любое сообщение и выводится на экран: _tipTextList = selectRandom [ "Connect to the xstreme gaming discord at discord.xstremegaming.com", "Server news, comp claims and more join the communnity www.xstremegaming.com", "This is a game of loss, its a wild world out there, good luck!", "Enjoy the server... Please consider donating to help keep us alive", "Any vehicle left inside the black safezone circle will be deleted at restart", "Press 'M' key for Map in game to view Server Rules and Building Limits", "Do not leave vehicles on exile base parts, at restart they will likely explode", "Press the 'U' key when your loaded in to show your FPS on the Status bar" ]; 5) По желанию меняем фоновое изображение (xsbackground.paa) и логотип (xslogo.paa) на свои. (формат .paa) 6) Открываем файл @exileserver\addons\exile_server_config\config.cpp, находим класс BambiSettings и убеждаемся что ваши параметры идентичны указанным ниже: parachuteSpawning = 1; haloJump = 1; parachuteDropHeight = 1000; Для владельцев InfiSTAR: 1) Открываем файл a3_infiSTAR_Exile\EXILE_AHAT_CONFIG.hpp и находим этот класс: allowedIDDs[] = 2) Через запятую добавляем idd скрипта: 86000
  2. 1 балл
    Собственно, из названия понятно что данный скрипт выводит на экран игрока оповещения о рестарте. Что нам понадобится: ArmA3_exile_restartWarnings-master.zip Или скачать архив по ссылке Инструкция: 1) Качаем архив и распаковываем его 2) Открываем файл init.sqf, находящийся в папке Exile.MapName в скачанном архиве и его содержимое копируем в низ вашего init.sqf 3) Открываем файл description.ext, находящийся в папке Exile.MapName в скачанном архиве и его содержимое копируем в низ вашего description.ext P.S. если у вас уже есть класс RscTitles, то вместо всего блока просто добавьте в уже существующий класс эту строку: #include "scarCODE\restartWarnings\hpp\RscDisplayRestartWarnings.hpp" 4) Скопировать папку scarCode в папку с вашей миссией Думаю этот простенький скрипт нужен на абсолютно каждом публичном сервере
  3. 1 балл
    немного доработанный (для админа) вариант Мизева Виталия с выдачей стартового лута в зависимости от UID или невыдачей ))) Вобщем-то все тривиально (с тз скриптинга) Добавил логгирование что бы была понятна последовательность выполнения Сейчас сам немного шаманю что к чему см комментарии в коде init.c void main() { Print("::: init.c ::: main() ::: "); Hive ce = CreateHive(); if ( ce ) ce.InitOffline(); Weather weather = g_Game.GetWeather(); weather.GetOvercast().SetLimits( 0.0 , 1.0 ); weather.GetRain().SetLimits( 0.0 , 1.0 ); weather.GetFog().SetLimits( 0.0 , 0.25 ); weather.GetOvercast().SetForecastChangeLimits( 0.0, 0.2 ); weather.GetRain().SetForecastChangeLimits( 0.0, 0.1 ); weather.GetFog().SetForecastChangeLimits( 0.15, 0.45 ); weather.GetOvercast().SetForecastTimeLimits( 1800 , 1800 ); weather.GetRain().SetForecastTimeLimits( 600 , 600 ); weather.GetFog().SetForecastTimeLimits( 1800 , 1800 ); weather.GetOvercast().Set( Math.RandomFloatInclusive(0.0, 0.3), 0, 0); weather.GetRain().Set( Math.RandomFloatInclusive(0.0, 0.2), 0, 0); weather.GetFog().Set( Math.RandomFloatInclusive(0.0, 0.1), 0, 0); weather.SetWindMaximumSpeed(15); weather.SetWindFunctionParams(0.1, 0.3, 50); } class CustomMission: MissionServer { ref array<string> m_pointPlayerPVP = new array<string>;; ref map<string, int> m_playersSetUID = new map<string, int>; void SetRandomHealth(EntityAI itemEnt) { Print("::: init.c ::: SetRandomHealth(EntityAI itemEnt) ::: "); //int rndHlt = Math.RandomInt(40,100); //itemEnt.SetHealth("","",rndHlt); //MY - ЭТО ЭКСПЕРИМЕНТ itemEnt.SetHealth("","",10000); } override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName) { Print("::: init.c ::: CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName) ::: "); Entity playerEnt; if (m_pointPlayerPVP.Count()>0) { Print (m_pointPlayerPVP.Count()); int maxNum = m_pointPlayerPVP.Count(); int numPoint = Math.RandomInt(0, maxNum - 1); pos = m_pointPlayerPVP.Get(numPoint).ToVector(); } playerEnt = GetGame().CreatePlayer(identity, characterName, pos, 0, "NONE");//Creates random player Class.CastTo(m_player, playerEnt); GetGame().SelectPlayer(identity, m_player); return m_player; } override void OnInit() { Print("::: init.c ::: OnInit() ::: "); string line_content; //Выбор координат спавна //ФАЙЛ pointPlayerPVP.lst кладем в папку указанную в параметре запуска сервера -profiles= //Формат координат в файле: X Z Y //Любая ошибка приведет к крашу сервера //Например: //6010.40 0 7742.71 //6386.92 0 7945.12 //6478.50 0 7874.77 //6044.73 0 7699.81 //5966.05 0 7720.02 //5912.13 0 7768.36 //5945.08 0 7759.17 FileHandle file = OpenFile("$profile:pointPlayerPVP.lst", FileMode.READ); Print("::: OpenFile : pointPlayerPVP.lst : $profile"); if (file != 0) { while ( FGets( file, line_content ) > 0 ) { m_pointPlayerPVP.Insert( line_content); } CloseFile(file); } m_pointPlayerPVP.Debug(); array<string> strFileParam; //ФАЙЛ playersSetUID.ini кладем в папку указанную в параметре запуска сервера -profiles= //Формат файла: //Steam UID в привычном виде|номер комплекта //Любая ошибка приведет к крашу сервера //Пример: // 76562298156537007|1 // 76561998116927207|3 //Ели UID в файле нет комплект выбирается рандомно file = OpenFile("$profile:playersSetUID.ini", FileMode.READ); Print("::: OpenFile : playersSetUID.ini : $profile"); if (file != 0) { while ( FGets( file, line_content ) > 0 ) { strFileParam = new array<string>; line_content.Split( "|", strFileParam ); m_playersSetUID.Insert(strFileParam.Get(0), strFileParam.Get(1).ToInt()); } CloseFile(file); } } override void StartingEquipSetup(PlayerBase player, bool clothesChosen) { Print("::: StartingEquipSetup(PlayerBase player, bool clothesChosen) :::"); //Номер комплекта выбирается рандомно int numSet = Math.RandomInt(2,6); /// 1 - Админ сет, 2-6 сеты для всех EntityAI itemEnt; ItemBase itemBs; //Получаем UID //PlayerIdentity p_identity = player.GetIdentity(); //p_identity.GetName(); // Получим имя игрока //p_identity.GetPlainId(); // UID в нашем знакомом виде 7656119********** //p_identity.GetId(); // получим UID в не знакомом виде Ue7dyagee34********* //p_identity.GetPlayerId(); // получим порядковый номер объекта типа игрок PlayerIdentity p_identity = player.GetIdentity(); string p_name = p_identity.GetName(); int p_id = p_identity.GetPlayerId(); if( p_identity ) { string uid_pl = p_identity.GetPlainId(); if (m_playersSetUID.Contains(uid_pl)) { numSet = m_playersSetUID.Get(uid_pl); } } itemEnt = player.GetInventory().CreateInInventory("Rag"); itemBs = ItemBase.Cast(itemEnt); itemBs.SetQuantity(4); SetRandomHealth(itemEnt); itemEnt = player.GetInventory().CreateInInventory("RoadFlare"); itemBs = ItemBase.Cast(itemEnt); switch( numSet ) { case 1: //ADMIN { Print("::: init.c ::: StartingEquipSetup ::: ADMIN ::: NAME:" + p_name + ", UID: " + uid_pl + ", ID: " + p_id.ToString() ); player.RemoveAllItems(); player.GetInventory().CreateInInventory("CoyoteBag_Green"); itemBs = ItemBase.Cast(itemEnt); player.GetInventory().CreateInInventory("TTSKOPants"); itemBs = ItemBase.Cast(itemEnt); player.GetInventory().CreateInInventory("TTsKOJacket_Camo"); itemBs = ItemBase.Cast(itemEnt); player.GetInventory().CreateInInventory("CombatBoots_Black"); itemBs = ItemBase.Cast(itemEnt); player.GetInventory().CreateInInventory("CombatKnife"); itemBs = ItemBase.Cast(itemEnt); player.GetInventory().CreateInInventory("FNX45"); itemBs = ItemBase.Cast(itemEnt); player.GetInventory().CreateInInventory("Mag_FNX45_15Rnd"); itemBs = ItemBase.Cast(itemEnt); player.GetInventory().CreateInInventory("Mag_FNX45_15Rnd"); itemBs = ItemBase.Cast(itemEnt); player.GetInventory().CreateInInventory("Mag_AKM_30Rnd"); itemBs = ItemBase.Cast(itemEnt); player.GetInventory().CreateInInventory("Mag_AKM_30Rnd"); itemBs = ItemBase.Cast(itemEnt); itemEnt = player.GetInventory().CreateInInventory( "akm" ); itemEnt.GetInventory().CreateAttachment( "PSO11Optic" ); itemEnt.GetInventory().CreateAttachment( "AK_WoodBttstck" ); itemEnt.GetInventory().CreateAttachment( "AK_WoodHndgrd" ); itemEnt.GetInventory().CreateAttachment( "AK_Suppressor" ); itemEnt = player.GetInventory().CreateInInventory("Rag"); itemBs = ItemBase.Cast(itemEnt); itemBs.SetQuantity(6); itemEnt = player.GetInventory().CreateInInventory("RoadFlare"); itemBs = ItemBase.Cast(itemEnt); player.SetHealth("","",10000); //ТЕСТ //SetAllowDamage НЕ РАБОТАЕТ ДЛЯ ОНЛАЙНА - БОГЕМЦЫ ВЫКЛЮЧИЛИ //Тут обсуждение - https://forums.dayz.com/topic/240028-pve-server-disable-pvp-damage/ //Есть идея насчет доработки кода обрабатывающего нанесение урона player.SetAllowDamage(false); break; } case 2: { itemEnt = player.GetInventory().CreateInInventory("VSS"); itemBs = ItemBase.Cast(itemEnt); //Шаманим свое break; } case 3: { itemEnt = player.GetInventory().CreateInInventory("AKM"); itemBs = ItemBase.Cast(itemEnt); //Шаманим свое break; } case 4: { itemEnt = player.GetInventory().CreateInInventory("AK74"); itemBs = ItemBase.Cast(itemEnt); //Шаманим свое break; } case 5: { break; } case 6: { break; } } } } Mission CreateCustomMission(string path) { Print("::: init.c ::: CreateCustomMission(string path) ::: "); return new CustomMission(); }
  4. 1 балл
    sks762

    Шаманим над оффлайном Дейза_63

    Сегодня мы нанесем удар по сливам и закроем "фруктовую" тему. Буду краток, т.к. по случаю удачи я объелся чернарусских слив и теперь меня периодически влечет сами понимаете куда. Оптимистичные логи оффлайна все это время дарили надежду, что сливы таки есть в игре: Сегодня мы прекратим тупое прочесывание садов, дворов, лесопосадок и призовем на помощь науку и маланство. На первых порах нам потребуется "аркенсоровский" оффлайн. Взять можно у камрада DrTauren или на первоисточнике Кажись есть ахтунг с работою этого оффлайна на свежей эксперименталке, поэтому сейчас воспользуемся стрессом#49. Для начала неплохо бы узнать, а как же выглядят сливовые деревья, чтоб не искать желанные плоды под осинами и кленами. Лезем в миссионный файл mapGroupProto.xml и через цепочку ассоциаций видим, что сливам приписан единственный тип дерева PlumTree1 <export name="PlumTree1" shape="dz\plants\tree\t_prunusDomestica_2s.p3d" /> Мда-а, другим фруктам повезло больше. У груш два типа деревьев, у яблонь - вообще три (правда один "битый" - AppleTree1, он ссылается на 3D-модель из ПБО-шки plants2.pbo, давно удаленной из игры). Для перестраховки заглянем в текущую ПБО-шку plants.pbo и убедимся, что сливовая модель t_prunusDomestica_2s.p3d в ней присутствует. Зер гут, нас не нае..ли. Теперь из "кластерного" файла мы можем узнать координаты потенциально плодоносных сливовых деревьев. Как я химичил с кластерными файлами, говорится в предыдущем посте. Теперь просто вЫчитал для примера Можно идти в аркенсоровский оффлайн и телепортировать перса по этим координатам. НО! Плоды сливы мелки и невзрачны, попробуй разглядеть их в траве. Для нашего контрольного поиска их неплохо бы временно заменить на нечто крупное и броское/яркое. Нет проблем! В events.xml вносим исправление (красненьким): Теперь нашим "сливовым" тестовым плодом стал красный гоночный шлем. Попутно по наитию вносим и зелененькие коррективы в параметры спавна. Все. Врубаем аркенсоровский оффлайн, в нем по Ctrl Del заходим в режим телепортирования, вбиваем координаты 10414 11659 и наш перс оказывается у дерева. Ну и в дебри же нас занесло! Так вот ты оказывается какая, слива... Поглядим еще на следующую (для гарантии) - она неподалеку. Включим "GPS" клавишею В и проследуем ко второму дереву. Все, ошибки быть не может, слива выглядит именно так, как на скрине - смотрите и запоминайте. Увы, под деревьями оказалось пусто. Но мы не отчаиваемся. Зная внешний вид деревьев, расширяем поиски. Встречаем целый сливовый сад, но тоже, увы, пустой (не иначе кабаны все сожрали!) А вот до этого дерева в Дубровке кабаны не добрались - видите, что-то там краснеет вдалеке?! Скорее туда! И там шлемы, и там! На месте этих шлемов вполне могли быть сладкие и сочные сливы! Теорема доказана и нам можно вместо DirtBikeHelmet_red вернуть прежнее Plum в events.xml. И вот они - первые настоящие сливы Чернаруси! Но наблюдается небольшой глючок игры (может, это только у меня). Сливовые плоды визуализируются, только когда подходишь почти вплотную. Отступишь шаг - и их словно бы и не лежало. Шагнул - и вот они на прежнем месте. Чудеса-а-а... Да, слив в Чернаруси не так много, как яблок и груш. Придется здорово попотеть в поисках. Ну или играться с параметрами спавна в events.xml. Флаг нам в руки! Результат наших трудов будет справедлив для любого оффлайна - аркенсоровского/официального/колобовского. P.S. Имеющийся визуальный глюк со сливой может иметь своей причиною недоработку в p3d файле модели плода (нарушения в LOD - т.е. уровнях графической детализации). Допустить такую ошибку в спешке - да как 2 пальца об асфальт... Вот мы отодвинулись от объекта на некое граничное расстояние и визуализатор должен нам отрисовать другую, более упрощенную модель (оптимизация!). А если мы забыли подшить в p3d "упрощенные" LODы, то можем ничего и не увидеть. На Дейзе61 и ниже проверить (да и подправить) p3d труда бы не составило. Но начиная с Дейз62 применен новый тип p3d-файлов, которые не по зубам прежнему аматорскому инструментарию. Такая вот пичалька...
  5. 1 балл
    123new он хочет чтобы ему фактически нашли скрипты одного сервера, ну или слили бы (видимо). И я даже, кажется, знаю о каком именно он сервере. Сидим вот обсуждаем с админом
  6. 1 балл
    DrTauren

    Туман в ночное время для Exile

    Этот скрипт добавит туман в ночное время. Тот же самый что когда-то добавляли на серверах Arma2. Он появляется вокруг игроков и машин при условии что игрок сидит внутри. Инструкция: 1) Создаём файл ground_fog.sqf со следующим содержимым: // Ground Fog - TorturedChunk - Kaysi - mmmyum @ OpenDayZ.net //Modify By CNSU waitUntil {!isNull player}; doofog = { private ["_obj","_pos","_fog1","_fog2","_fog3","_inVehicle"]; _inVehicle = (vehicle player != player); if (_inVehicle) then { _obj = (vehicle player); } else { _obj = player; }; _pos = position _obj; _fog1 = "#particlesource" createVehicleLocal _pos; _fog1 setParticleParams [ ["\A3\Data_F\ParticleEffects\Universal\universal.p3d" , 16, 12, 13, 0], "", "Billboard", 1, 10, [0, 0, -6], [0, 0, 0], 1, 1.275, 1, 0, [7,6], [[1, 1, 1, 0], [1, 1, 1, 0.04], [1, 1, 1, 0]], [1000], 1, 0, "", "", _obj ]; _fog1 setParticleRandom [3, [55, 55, 0.2], [0, 0, -0.1], 2, 0.45, [0, 0, 0, 0.1], 0, 0]; _fog1 setParticleCircle [0.001, [0, 0, -0.12]]; _fog1 setDropInterval 0.01; _fog2 = "#particlesource" createVehicleLocal _pos; _fog2 setParticleParams [ ["\A3\Data_F\ParticleEffects\Universal\universal.p3d" , 16, 12, 13, 0], "", "Billboard", 1, 10, [0, 0, -6], [0, 0, 0], 1, 1.275, 1, 0, [7,6], [[1, 1, 1, 0], [1, 1, 1, 0.04], [1, 1, 1, 0]], [1000], 1, 0, "", "", _obj ]; _fog2 setParticleRandom [3, [55, 55, 0.2], [0, 0, -0.1], 2, 0.45, [0, 0, 0, 0.1], 0, 0]; _fog2 setParticleCircle [0.001, [0, 0, -0.12]]; _fog2 setDropInterval 0.01; _fog3 = "#particlesource" createVehicleLocal _pos; _fog3 setParticleParams [ ["\A3\Data_F\ParticleEffects\Universal\universal.p3d" , 16, 12, 13, 0], "", "Billboard", 1, 10, [0, 0, -6], [0, 0, 0], 1, 1.275, 1, 0, [7,6], [[1, 1, 1, 0], [1, 1, 1, 0.04], [1, 1, 1, 0]], [1000], 1, 0, "", "", _obj ]; _fog3 setParticleRandom [3, [55, 55, 0.2], [0, 0, -0.1], 2, 0.45, [0, 0, 0, 0.1], 0, 0]; _fog3 setParticleCircle [0.001, [0, 0, -0.12]]; _fog3 setDropInterval 0.01; _this setVariable ["playerfog", floor time + 5]; sleep 120; deleteVehicle _fog1; deleteVehicle _fog2; deleteVehicle _fog3; }; [] spawn { while {true} do { if(daytime < 7 || daytime > 19) then { if (player getVariable ["playerfog", -1] < time) then { player setVariable ["playerfog", floor time + 5]; player spawn doofog; sleep 120; }; }; }; }; 2) Сохраняем его в любое место в папке вашей миссии. Например в корневую папку миссии 3) Открываем файл init.sqf и добавляем эту строку: _GF = [] execVM "ground_fog.sqf";
×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.

Поддержка