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

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

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

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

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

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


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

Отображаются публикации с наибольшей репутацией на 10/21/18 во всех областях

  1. 2 балла
    Автор: Виталий Мизев Для начала в папке профиля сервера которая указана в параметре запуска сервера -profile= создаем 2 файла pointPlayerPVP.lst - координаты спавна нового персонажа в формате vector playersSetUID.ini - Steam UID игроков | номер комплекта стартового лута для выбора Пример формата файла pointPlayerPVP.lst 6010.40 0 7742.71 6386.92 0 7945.12 6478.50 0 7874.77 6044.73 0 7699.81 Пример формата playersSetUID.ini - STEAMUID|номер 76531195156927007|1 76561838156127001|2 Игроку с Steam UID 6531195156927007 будет выдат комплект 1, 76561838156127001 комплект 2, если в файле UID нет, то рандомно из остальных комплектов В файле init.c в теле класса: class CustomMission: MissionServer сначала обьявим массивы ref array<string> m_pointPlayerPVP = new array<string>;; ref map<string, int> m_playersSetUID = new map<string, int>; это массивы глобальны в классе и могут использоваться во всех функциях класса в теле override void OnInit() (выполняется при запуске сервера) Чтение координат спавна из файла в массив m_pointPlayerPVP string line_content; 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(); Чтение Steam UID и номера из файла в массив m_playersSetUID array<string> strFileParam; 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); } Далее При создании НОВОГО обьекта игрока сначала ему задаются координаты рандомно выбираясь из массива m_pointPlayerPVP см как идет работа с этим массивом override PlayerBase 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; } Затем при создании стартового комплекта лута комплект выдается в зависимости от наличия в файле UID и номера после | (комплекта) (в данном случае для номера 1 набор собран (см case :1) , для остальных ничего) override void 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 { 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(4); itemEnt = player.GetInventory().CreateInInventory("RoadFlare"); itemBs = ItemBase.Cast(itemEnt); player.SetHealth("","",1000); //ТЕСТ //SetAllowDamage НЕ РАБОТАЕТ ДЛЯ ОНЛАЙНА - БОГЕМЦЫ ВЫКЛЮЧИЛИ //Тут обсуждение - https://forums.dayz.com/topic/240028-pve-server-disable-pvp-damage/ //Есть идея насчет доработки кода обрабатывающего нанесение урона player.SetAllowDamage(false); break; } case 2: { break; } case 3: { break; } case 4: { break; } case 5: { break; } case 6: { break; } } } Вот как-то так На основе этого можно построить свою более развитую систему, например загружая координаты для кастомного спавн лута, расстановки зданий и тп
  2. 1 балл
    BorizzK

    [0.63] Закрытая зона для режима PVP

    123new так мы же решили этот вопрос в теме про газзону ))) В коде триггера добавляем переменную vector gas_point; перед проверкой (которая в цикле) в зоне игрок или нет gas_point = gas_points.Get(x); //помещаем в gas_point элемент массива с координатами gas_point[1] = GetGame().SurfaceY(gas_point[0], gas_point[2]);//меняем выстоу с 0 на высоту поверхности и далее везде gas_points.Get(x) у которого высота 0 меням на gas_point в котором высота соответствует поверхности
  3. 1 балл
    Стим уид зайти в стим и в профиль и взять id из url вот например https://steamcommunity.com/profiles/75561197156927107/ 75561197156927107 - Это и есть стим ид ну или https://yandex.ru/yandsearch?text=узнать steamuid&lr=213&redircnt=1540098483.1 По осатльному В коде есть комментарии вообще-то, я их специально тудой написал )))
  4. 1 балл
    Alex39

    [Последняя версия] Union Altis Life Arma 3

    Была у меня мысль обновить, убрать ошибки, пару скриптов поставить, потом обламался, нет стимула
  5. 1 балл
    Irkutsk86

    [Последняя версия] Union Altis Life Arma 3

    Эта сборка уже у всех есть. Ну если у тебя есть обновленная без косяков, скинь мне в личку.
  6. 1 балл
    KENNYJESUS

    [Последняя версия] Union Altis Life Arma 3

    Скину эту сборку бесплатно.
×
×
  • Создать...

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

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

Поддержка