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

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

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

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

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

История изменений

Здесь нет истории для отображения или этот комментарий был изменён модератором

  • Похожие публикации

    • Автор: BorizzK
      Вот предположим мы создали где-то экземпляр класса;
      ref Class newClass = new Class();
       
      1 Он удалится сам? При каких условиях?
      2 Как его удалить принудительно если он больше не нужен?
       
    • Автор: BorizzK
      Вобщем в процессе работы сервера происходят рандомные динамические события и вместе с ними на карте спавнятся некоторые обьекты
      Если время их жизни истекает и настает время нового события и в радиусе видимости нет игроков обьекты удаляются с карты
      Но
      Если выключение корректно (запланированный рестарт например), вызов функции удаления происходит из деструктора класса
      Все отрабатывает
      Ошибок нет
      Но после рестарта некоторые обьекты на месте
      Тогда я замутил функцию-задержку с проверкой
       
      float TimeWait(Object object, float timeW) { float cTick = GetGame().GetTickTime() + timeW; while(object || GetGame().GetTickTime() < cTick ) { if ( GetGame().GetTickTime() >= cTick ) break; } return GetGame().GetTickTime(); } и вызываю ее
       
      if (object) tW = TimeWait(object, timeW); задержка реально происходит - делал ее 60 секунда да же
      НО! обьекты эти после рестарта опять на месте
       
      Пока придумал костыль - сохраняю в профиль сервера при каждом спавне координаты и тайпнеймы заспавленных обьектов и при запуске в конструкторе проверяю это место и грохаю обьекты по тайпнеймам - места безлюдные и открытые, лагерей и тп там быть не может - потому в принципе ничего лишнего туда попасть не может
      к тому же это полезно в случае крашей
       
      и все же
      почему обьекты не удаляются при завершении работы сервера?
       
    • Автор: BorizzK
      //Функция создания зданий/обьектов BORIZZ.K //Не поставит здание/обьект там где оно уже есть в радиусе 10м!!! //параметры вызова //НазваниеКласса, координаты, коррекция высоты (добавляется к высоте если > 0 - можно поставить здание на здание/поверхность выше земли или повесить в воздухе), Ориентация, Направление. int SpawnBuilding(string m_Building_Class, vector spawn_Point, float alt_Correct, vector spawn_Orient, vector spawn_Dir) //Спавн { Print("::: SpawnBuilding ::: SpawnBuilding(m_Building_Class = " + m_Building_Class + ", spawn_Point = " + spawn_Point.ToString() + ", alt_Correct = " + alt_Correct + ", spawn_Orient = " + spawn_Orient + ", spawn_Dir = " + spawn_Dir + ") :::"); array<Object> nearest_objects = new array<Object>; array<CargoBase> proxy_cargos = new array<CargoBase>; string className; Object object; float radius = 10; Object m_Building; int n_Building_Count = 0; spawn_Point[1] = GetGame().SurfaceY( spawn_Point[0], spawn_Point[2] ); if (alt_Correct > 0) { spawn_Point[1] = spawn_Point[1] + alt_Correct; } GetGame().GetObjectsAtPosition(spawn_Point, radius, nearest_objects, proxy_cargos); Print("::: SpawnBuilding ::: Radius: " + radius.ToString() + ", all nearest_objects: " + nearest_objects.Count().ToString() + " :::"); for ( int i = 0; i < nearest_objects.Count(); i++ ) { object = nearest_objects.Get(i); className = object.GetType(); if ( className == m_Building_Class ) { Print("::: SpawnBuilding ::: Found object: " + object.ToString() + ", className: " + className + ", Position: " + object.GetPosition() + " : Spawn " + m_Building_Class + " cancelled. ::: "); return 0; } } m_Building = GetGame().CreateObject( m_Building_Class, spawn_Point, false, true ); //m_Building.PlaceOnSurface(); if ( spawn_Orient[0] == 0 && spawn_Orient[1] == 0 && spawn_Orient[2] == 0) { m_Building.SetOrientation(m_Building.GetOrientation()); } else { m_Building.SetOrientation(spawn_Orient); } if ( spawn_Dir[0] == 0 && spawn_Dir[1] == 0 && spawn_Dir[2] == 0) { m_Building.SetDirection(m_Building.GetDirection()); } else { m_Building.SetDirection(spawn_Dir); } if (m_Building) { Print("::: SpawnBuilding ::: Result: Object: " + m_Building.ToString() + ", spawn_Point = " + m_Building.GetPosition().ToString() + ", alt_Correct = " + alt_Correct + ", spawn_Orient = " + m_Building.GetOrientation().ToString() + ", spawn_Dir = " + m_Building.GetDirection().ToString() + ") :::"); return 1; } else { Print("::: SpawnBuilding ::: Result: create object error. :::"); } return 0; } void SpawnBuildings() { int Buildings_Count; // пример Buildings_Count = SpawnBuilding("Land_City_FireStation", "6275 0 8013" , 0, "0 0 0", "0 0 40"); // Buildings_Count будет = 0 если здание не поставлено, 1 если поставлено } Простой способ установки
      Вставить в init.c (ВНЕ КЛАССА!)

      Вызывать в конце main()
      вот так
      SpawnBuildings();
       
      в функции SpawnBuildings() по примеру (там есть) прописываем какие здания куда, какая ориентация/и или направление
       
       
    • Автор: FiQ
      Здравствуйте.
      Создал необходимые конфиги для источника звука.
      Суть исполнения такова:
      При вызове функции: Создается источник звука ( изначально определенный ), который крепится к игроку и соответственно воспроизводится звук. 
      При повторном вызове функции ( в идеале с мощью другой функции ) : удаляется ранее прикрепленный источник звука к игроку, соответственно прекращается воспроизведение звука .  
      Мои неудачные попытки реализации:
       
      test_sound1 = { private["_sound1","_sound1Flag"]; _sound1Flag = false; if(_sound1Flag) then{ deleteVehicle _sound1; _sound1Flag = false; }else{ _sound1 = createSoundSource ["2000_baksov_mp3", [0,0,0], [], 0]; _sound1 attachTo [player,[0,0,1]]; _sound1Flag = true; }; }; test_sound1 = { private["_sound1","_sound1Flag"]; if(_sound1Flag) then{ _sound1 = createSoundSource ["2000_baksov_mp3", [0,0,0], [], 0]; _sound1 attachTo [player,[0,0,1]]; _sound1Flag = false; }else{ deleteVehicle _sound1; _sound1Flag = true; }; }; test_sound1 = { private["_sound1",]; if(sound1Flag) then{ _sound1 = createSoundSource ["2000_baksov_mp3", [0,0,0], [], 0]; _sound1 attachTo [player,[0,0,1]]; sound1Flag = false; }else{ deleteVehicle _sound1; sound1Flag = true; }; }; В последнем варианте создана глобальная переменная, значение которой указано по дефолту "Истина" в initPlayerLocal.sqf 
      Источник звука при первом вызове прикрепляется к игроку, т.е. функция срабатывает правильно. При втором вызове  - звук не атачится, но и не удаляется первый источник звука. При третьем вызове так же прикрепляется еще один источник звука и получается каша из двух звуков. 
       
      Задумка:
      Что-то типа плеера, у которого есть несколько кнопок, каждая из которых вызывает функцию с воспроизведением музыки ( аттачит источник звука ) и одна доп. кнопка которая бы удаляля все источники звука приаттаченные на игроке с помощью все тех же функций упомянутых ранее. Ну или же при повторном вызове одной и той же функции при первом вызове: аттачился звук, при повторном вызове функции: удалялся ранее приаттаченный источник звука.
      Наведите на правильный путь в исполнении данной задумки.
    • Автор: krovn
      Доброго времени суток,
       
      Допиливая сборку столкнулся с проблемой что постройки из Alchemical crafting не получают урона и их невозможно уничтожить.
      Проблему частично решил - добавлением HandleDamage, но вот до БД это не доходит и даже уничтоженные объекты после рестарта появляются снова...
       
      есть идеи?
  • Наш выбор

×
×
  • Создать...

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

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