???
Математика на уровне МГУ

Страница 3 из 32 ПерваяПервая 123456713 ... КрайняяКрайняя
Показано с 51 по 75 из 789

Тема: Вопросы.

  1. #51
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    45
    Сообщений
    6,905
    Images
    51

    Re: Вопросы.

    Цитата Сообщение от Geniok Посмотреть сообщение
    Такой вопрос возник, как определить, имеется ли самолет какой-либо группы в данный момент или нет?

    Поясню. У немцев названия группы содержат знаки (|, ||, |||, |V, V, V|) и так далее. Но, при написании скрипта игра подобные знаки игнорирует.
    С англичанами проблем нет, у них обозначения цифровые, например 218Sqn. А вот у немцев обозначения типа JG51_| игра в упор не видит. Может стоит заменить | на 1, || на 2, ||| на 3, |V на 4 и т.д. ?
    Вот так в игре записывается -"BoB_LW_JG53_I" - "I" латинская
    Don't happy, be worry

  2. #52
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Вопросы.

    Прошу помочь со скриптом для миссии http://www.sukhoi.ru/forum/showthrea...=1#post1607576

    Проблема:
    При отсутствии адекватного количеству ботов игроков на сервере, количество ботов увеличивается при загрузке скриптом новых суб-миссий, что со временем делает миссию неинтересной для игроков из-за большого количества ботов. Заранее сокращать количество ботов в миссии не хотелось бы, т.к. не известно будет на сервере 5 игроков или 50.

    Некоторые идеи решения задачи:
    Цитата Сообщение от -atas- Посмотреть сообщение
    Актуально стоит проблема размножения ботов, если народа на сервере мало и их не сбивают. Надеялся, что зенитки с этой задачей справятся, но это вариант не надежный.

    Нужен скрипт, который последовательно бы наносил дамаг после последнего вейпойнта (в крайнем случае по времени), а после падения/посадки дестроил бы самолеты. Последовательно - значит не всем самолетам в группе сразу, а по очереди и желательно разный дамаг (отказы разных систем с учетом того, что бомберы поьывали под зенитным огнем):
    Тут в соседних ветках и на западном форуме обсуждается проблема корректного уничтожения акторов.

    1) Есть мысль для покинутых самолетов после выхода игрока отключать элероны, а через минуты 3 и руль высоты (или ломать двигатель), а еще через минут 5 уже дестроить его после падения. Можно давать рули на ввод в штопор и клинить в таком положении? Или давать полное отклонение элеронов и т.п.

    2) Для просто ботов (в которые игрок не садился) после последнего вейпойнта отсчитывать минут 20-30 и тоже постепено выводить из строя управление и двигатель, а уже после падения дестроить. Но нужно это делать поочередно для каждого самолета в группе, чтобы не было "массового самоубийста" и желательно рандомизировать повреждения. Наверное, это сложновато всё заскриптовать.

    Вот скрипт уничтожения акторов после выхода игрока адаптированный для многоместных самолетов http://www.sukhoi.ru/forum/showthrea...=1#post1606538 Но тому, кто гонялся за этим игроком очень неприятно видеть, что самолет исчезает в никуда, но и за ботом гоняться тоже не интересно.
    Возможно еще есть идеи для красивого сокращения популяции ботов? После посадки, например, они сами исчезают, если airport.cpp работает? Но на посадку лететь далековато бывает и остается проблема севших на вынужденную.
    Планировалось ли как-то решать эту проблему штатными средствами игры?
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

  3. #53
    Любопытный
    Регистрация
    03.10.2005
    Адрес
    Киров
    Возраст
    40
    Сообщений
    1,386

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    Вот так в игре записывается -"BoB_LW_JG53_I" - "I" латинская
    А 5 как писать, буква V ?
    I - это буква I ?
    Если да, то почему-то все равно не выходит.
    Завтра проверю еще раз, отпишусь.

    С Уважением!

  4. #54
    Зашедший Аватар для zaltys
    Регистрация
    26.03.2011
    Адрес
    Литва
    Сообщений
    31

    Re: Вопросы.

    naryv,

    Можно ли заставить экипаж прыгать с парашютом из самолета? Если нет, может быть, мы можем получить AiPerson.BailOut () в следующем патче?

  5. #55
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    45
    Сообщений
    6,905
    Images
    51

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Прошу помочь со скриптом для миссии http://www.sukhoi.ru/forum/showthrea...=1#post1607576

    Проблема:
    При отсутствии адекватного количеству ботов игроков на сервере, количество ботов увеличивается при загрузке скриптом новых суб-миссий, что со временем делает миссию неинтересной для игроков из-за большого количества ботов. Заранее сокращать количество ботов в миссии не хотелось бы, т.к. не известно будет на сервере 5 игроков или 50.
    Ну, можно, например, в зависимости от количества игроков на сервере загружать миссии с разным количеством ботов
    Цитата Сообщение от -atas- Посмотреть сообщение
    Планировалось ли как-то решать эту проблему штатными средствами игры?
    Надо ставить ботам конечную точку маршрута - аэродром и посадка, тогда после выполнения задачи, они будут возвращаться на аэродром и пропадать. Если конечная точка в воздухе - они так и будут вокруг неё летать.

    Цитата Сообщение от Geniok Посмотреть сообщение
    А 5 как писать, буква V ?
    I - это буква I ?
    Если да, то почему-то все равно не выходит.
    Завтра проверю еще раз, отпишусь.
    Да,всё так , 1 - латинская буква "I", 5 -латинская "V". Должно работать - выше строчка - это как раз имя группы, из игры.

    Цитата Сообщение от zaltys Посмотреть сообщение
    naryv,

    Можно ли заставить экипаж прыгать с парашютом из самолета? Если нет, может быть, мы можем получить AiPerson.BailOut () в следующем патче?
    Если повредить самолёт, они попрыгают из него. В ближайших патчах вряд-ли, потом- может быть, только зачем?
    Don't happy, be worry

  6. #56
    Зашедший Аватар для zaltys
    Регистрация
    26.03.2011
    Адрес
    Литва
    Сообщений
    31

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    Если повредить самолёт, они попрыгают из него. В ближайших патчах вряд-ли, потом- может быть, только зачем?
    Люди не любят, когда боты продолжают летать в самолетах, которые были оставлены игроками. Однако, они также не любят, когда самолет исчезает в воздухе (.OnPlaceLeave() + AiAircraft.Destroy()). Было бы лучше, если бы удалось заставить экипаж покинуть самолет, когда последний игрок покидает его.

    Есть ли какой-то тип повреждения, которые бы немедленно заставил экипажа выйти из самолета, но не было заметно внешне (т.е. без фейерверка из ниоткуда)?

  7. #57
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Вопросы.

    Цитата Сообщение от zaltys Посмотреть сообщение
    Люди не любят, когда боты продолжают летать в самолетах, которые были оставлены игроками. Однако, они также не любят, когда самолет исчезает в воздухе (.OnPlaceLeave() + AiAircraft.Destroy()). Было бы лучше, если бы удалось заставить экипаж покинуть самолет, когда последний игрок покидает его.

    Есть ли какой-то тип повреждения, которые бы немедленно заставил экипажа выйти из самолета, но не было заметно внешне (т.е. без фейерверка из ниоткуда)?
    + 1 Это было бы элегантным решением. Часто покидают при повреждении двигателя. Топливо обрезать?

    Вот можно перебрать
    Код:
    part.NamedDamageTypes.AirbrakeDriveFailure
    part.NamedDamageTypes.AirbrakeHosePerforated
    part.NamedDamageTypes.AirbrakePistonFailure
    part.NamedDamageTypes.ChunkLargeDamage
    part.NamedDamageTypes.ChunkSmallDamage
    part.NamedDamageTypes.CockpitDamageFlag00 ... part.NamedDamageTypes.CockpitDamageFlag14
    part.NamedDamageTypes.ControlsAileronsDisabled
    part.NamedDamageTypes.ControlsElevatorDisabled
    part.NamedDamageTypes.ControlsGenericKickdown
    part.NamedDamageTypes.ControlsRudderDisabled
    part.NamedDamageTypes.ElecBatteryFailure
    part.NamedDamageTypes.ElecGeneratorFailure
    part.NamedDamageTypes.ElecIlluminationFailure
    part.NamedDamageTypes.ElecMasterCompassFailure
    part.NamedDamageTypes.ElecPrimaryFailure
    part.NamedDamageTypes.ElecPriNavigationFailure
    part.NamedDamageTypes.ElecSecNavigationFailure
    part.NamedDamageTypes.ElecSecondaryFailure
    part.NamedDamageTypes.ElecTransceiverFailure
    part.NamedDamageTypes.ElecWeaponryFailure
    
    // Engine Damages Engine0 - Engine7
    part.NamedDamageTypes.Eng0CarbControlsFailure
    part.NamedDamageTypes.Eng0CarbFailure
    part.NamedDamageTypes.Eng0CompressorFailure
    part.NamedDamageTypes.Eng0CompressorGovernorFailure
    part.NamedDamageTypes.Eng0CompressorSeizure
    part.NamedDamageTypes.Eng0CylinderHeadExtinguished
    part.NamedDamageTypes.Eng0CylinderHeadFire
    part.NamedDamageTypes.Eng0ExhaustHeadFailure
    part.NamedDamageTypes.Eng0FuelLinePerforated
    part.NamedDamageTypes.Eng0FuelPumpFailure
    part.NamedDamageTypes.Eng0FuelSecondariesFire
    part.NamedDamageTypes.Eng0GovernorFailure
    part.NamedDamageTypes.Eng0GovernorSeizure
    part.NamedDamageTypes.Eng0IntakeBurnt
    part.NamedDamageTypes.Eng0IntercoolerBurnt
    part.NamedDamageTypes.Eng0Magneto0Failure
    part.NamedDamageTypes.Eng0Magneto1Failure
    part.NamedDamageTypes.Eng0OilGasketLeak
    part.NamedDamageTypes.Eng0OilLineBroken
    part.NamedDamageTypes.Eng0OilPumpFailure
    part.NamedDamageTypes.Eng0OilRadiatorPerforated
    part.NamedDamageTypes.Eng0OilSecondariesExtinguished
    part.NamedDamageTypes.Eng0OilSecondariesFire
    part.NamedDamageTypes.Eng0OilTankPerforated
    part.NamedDamageTypes.Eng0Plug00Failure - part.NamedDamageTypes.Eng0Plug17Failure
    part.NamedDamageTypes.Eng0PropBlade1Broken - part.NamedDamageTypes.Eng0PropBlade4Broken
    part.NamedDamageTypes.Eng0PropControlBroken
    part.NamedDamageTypes.Eng0ThrottleControlBroken
    part.NamedDamageTypes.Eng0TotalFailure
    part.NamedDamageTypes.Eng0TotalSeizure
    part.NamedDamageTypes.Eng0TretiaryControlBroken
    part.NamedDamageTypes.Eng0WaterJacketBroken
    part.NamedDamageTypes.Eng0WaterLineBroken
    part.NamedDamageTypes.Eng0WaterPumpFailure
    part.NamedDamageTypes.Eng0WaterRadiatorPerforated
    part.NamedDamageTypes.Eng0WaterTankPerforated
    
    part.NamedDamageTypes.EngineLargeDamage
    part.NamedDamageTypes.EngineSmallDamage
    part.NamedDamageTypes.FuelPumpFailure
    
    // Tanks 0 - 7
    part.NamedDamageTypes.FuelTank0Exploded
    part.NamedDamageTypes.FuelTank0Fire
    part.NamedDamageTypes.FuelTank0HosePerforated
    part.NamedDamageTypes.FuelTank0LargeLeak
    part.NamedDamageTypes.FuelTank0PumpFailure
    part.NamedDamageTypes.FuelTank0SmallLeak
    part.NamedDamageTypes.FuelTank0TinyLeak
    
    part.NamedDamageTypes.HydraulicsEmergencyFailure
    part.NamedDamageTypes.HydraulicsPistonOpened
    part.NamedDamageTypes.HydraulicsPrimaryHosePerforated
    part.NamedDamageTypes.HydraulicsPumpFailure
    part.NamedDamageTypes.HydraulicsTankPerforated
    part.NamedDamageTypes.LandingFlapsDriveFailure
    part.NamedDamageTypes.LandingFlapsHosePerforated
    part.NamedDamageTypes.LandingFlapsKinematicFailure1
    part.NamedDamageTypes.LandingFlapsKinematicFailure2
    part.NamedDamageTypes.LandingFlapsPistonFailure1
    part.NamedDamageTypes.LandingFlapsPistonFailure2
    part.NamedDamageTypes.LifeKeeperPartLargeDamage
    part.NamedDamageTypes.LifeKeeperPartSmallDamage
    
    
    // Weapondamages 00 - 11
    part.NamedDamageTypes.Machinegun00BeltBroken
    part.NamedDamageTypes.Machinegun00Charged
    part.NamedDamageTypes.Machinegun00Failure
    part.NamedDamageTypes.Machinegun00Jammed
    part.NamedDamageTypes.Machinegun00LineDamaged
    
    
    part.NamedDamageTypes.PartLargeDamage
    part.NamedDamageTypes.PartSmallDamage
    part.NamedDamageTypes.PneumaticsCompressorFailure
    part.NamedDamageTypes.PneumaticsPrimaryContainerPerforated
    part.NamedDamageTypes.PneumaticsPrimaryHosePerforated
    part.NamedDamageTypes.PneumaticsSecondaryContainerPerforated
    part.NamedDamageTypes.PneumaticsSecondaryHosePerforated
    part.NamedDamageTypes.UndercarriageDownLockFailureC
    part.NamedDamageTypes.UndercarriageDownLockFailureL
    part.NamedDamageTypes.UndercarriageDownLockFailureR
    part.NamedDamageTypes.UndercarriageDriveDamaged
    part.NamedDamageTypes.UndercarriageHosePerforated
    part.NamedDamageTypes.UndercarriageKinematicFailureC
    part.NamedDamageTypes.UndercarriageKinematicFailureL
    part.NamedDamageTypes.UndercarriageKinematicFailureR
    part.NamedDamageTypes.UndercarriageShockFailureC
    part.NamedDamageTypes.UndercarriageShockFailureL
    part.NamedDamageTypes.UndercarriageShockFailureR
    part.NamedDamageTypes.UndercarriageUpLockFailureC
    part.NamedDamageTypes.UndercarriageUpLockFailureL
    part.NamedDamageTypes.UndercarriageUpLockFailureR
    part.NamedDamageTypes.WeaponLargeDamage
    part.NamedDamageTypes.WeaponSmallDamage
    part.NamedDamageTypes.WheelBrakesFailureL
    part.NamedDamageTypes.WheelBrakesFailureR
    part.NamedDamageTypes.WheelBrakesHosePerforated
    part.NamedDamageTypes.WheelBrakesTotalFailure
    
    part.NamedDamageTypes.MaxValue
    part.NamedDamageTypes.Nil
    http://forum.1cpublishing.eu/showthread.php?t=22184
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

  8. #58

    Re: Вопросы.

    Цитата Сообщение от zaltys Посмотреть сообщение
    Люди не любят, когда боты продолжают летать в самолетах, которые были оставлены игроками. Однако, они также не любят, когда самолет исчезает в воздухе (.OnPlaceLeave() + AiAircraft.Destroy()). Было бы лучше, если бы удалось заставить экипаж покинуть самолет, когда последний игрок покидает его.

    Есть ли какой-то тип повреждения, которые бы немедленно заставил экипажа выйти из самолета, но не было заметно внешне (т.е. без фейерверка из ниоткуда)?
    Ломай ему все управление - элероны высоту и направление.. Тыц Тем более внешне никак не заметно.

  9. #59
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Ломай ему все управление - элероны высоту и направление.. Тыц Тем более внешне никак не заметно.
    Если он оттриммирован, то дальше полетит или прыгнет? Тушка долго может лететь, наверное. Может рули дать на ввод в штопор на минуту перед тем как их вырубить? или нет таких команд?

    --- Добавлено ---

    Цитата Сообщение от naryv Посмотреть сообщение
    Надо ставить ботам конечную точку маршрута - аэродром и посадка, тогда после выполнения задачи, они будут возвращаться на аэродром и пропадать. Если конечная точка в воздухе - они так и будут вокруг неё летать.
    А как убирать с земли самолеты, которые сели на вынужденную, разбились не долетев до посадки? Их много скапливается за 3-4 часа на сервере: зенитки-то работают, даже если игроков нет.
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

  10. #60
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Re: Вопросы.

    naryv,
    А может подскажешь как добраться до maddox.game.GameServerDef?
    В смысле подключить унаследованный класс. Желательно - к дедикейту.

  11. #61
    Любопытный
    Регистрация
    03.10.2005
    Адрес
    Киров
    Возраст
    40
    Сообщений
    1,386

    Re: Вопросы.

    Уважаемый naryv, есть очень большая просьба. Нельзя ли сделать так, чтобы игра игнорировала знаки "=" в файлах ini ?

    То есть сейчас имеем файл campaings.ini:
    "[Main]
    campaign_pk
    campaign_gb
    campaign_de

    [campaign_gb]
    folder campaign_gb
    title Cliffs Of Dover
    image Poster.bmp

    [campaign_de]
    folder campaign_de
    title Adler Angriff
    image Poster.bmp

    [campaign_pk]
    folder campaign_pk
    title День Орла
    image Poster.bmp
    "

    А надо чтобы можно было написать так:
    "[Main]
    campaign_pk=
    campaign_gb
    campaign_de

    [campaign_gb]
    folder campaign_gb
    title Cliffs Of Dover
    image Poster.bmp

    [campaign_de]
    folder campaign_de
    title Adler Angriff
    image Poster.bmp

    [campaign_pk=]
    folder = campaign_pk
    title = День Орла
    image = Poster.bmp
    "

  12. #62
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Вопросы.

    Прошу уточнить:
    Код:
     public class Mission : AMission
    {
    
    
        public override void OnTickGame()
        {
    
                if (Time.tickCounter() % 108000 == 18000) // 60-10 
                {
                GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/128BoF/128BoFsmGroundv1_0.mis");
                GamePlay.gpHUDLogCenter("Protect friendly shipping in the channel near France!");
                }
    
                if (Time.tickCounter() % 81000 == 63000) // 45-35
                {
                    GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/128BoF/128BoFsmBombersv1_0.mis");
    				GamePlay.gpHUDLogCenter("Intel: Enemy bombers are heading to blue airfields!"); 
    			}
    		
    		
    			if(Time.tickCounter() % 81000 == 81000) // 45-45
    			{
                    GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/128BoF/128BoFsmBombersv1_0a.mis");
                    GamePlay.gpHUDLogCenter("Intel: Enemy bombers are heading to red airfields in France!"); 
    			}
    
             
        }
    
        
    
    }
    1я миссия загрузится через 10 минут с начала хост-миссии и будет повторяться с момента своей 1й загрузки каждые 60 мин.

    2я миссия загрузится через 35 минут с начала хост-миссии (и будет повторяться с момента своей 1й загрузки каждые 45 мин.

    3я миссия загрузится через 45 минут с начала хост-миссии и будет повторяться с момента своей 1й загрузки каждые 45 мин.

    Всё так или временные циклы по-другому отсчитываются?

    upd. Если увеличить радиус airport.cpp до 10000, будет ли это убирать обломки с земли/самолеты на вынужденной во всем радиусе действия? Чем грозит такое увеличение радиуса? Каков верхний предел? 50000, 100000 будет работать?
    Крайний раз редактировалось -atas-; 27.04.2011 в 15:33.
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

  13. #63
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    45
    Сообщений
    6,905
    Images
    51

    Re: Вопросы.

    Цитата Сообщение от zaltys Посмотреть сообщение
    Люди не любят, когда боты продолжают летать в самолетах, которые были оставлены игроками. Однако, они также не любят, когда самолет исчезает в воздухе (.OnPlaceLeave() + AiAircraft.Destroy()). Было бы лучше, если бы удалось заставить экипаж покинуть самолет, когда последний игрок покидает его.

    Есть ли какой-то тип повреждения, которые бы немедленно заставил экипажа выйти из самолета, но не было заметно внешне (т.е. без фейерверка из ниоткуда)?
    Ну, наверное оптимальный вариант управление блокировать, как Small_Bee написал.

    Цитата Сообщение от -atas- Посмотреть сообщение
    А как убирать с земли самолеты, которые сели на вынужденную, разбились не долетев до посадки? Их много скапливается за 3-4 часа на сервере: зенитки-то работают, даже если игроков нет.
    можно так :
    Код:
    public override void OnAircraftCrashLanded(int missionNumber, string shortName, AiAircraft aircraft)
        {
            base.OnAircraftCrashLanded(missionNumber, shortName, aircraft);
            Timeout(5, () =>
            {
                aircraft.Destroy();
            });
        }
    через 5 секунд после крашлэндинга уничтожится.

    Цитата Сообщение от Mirnyi Посмотреть сообщение
    naryv,
    А может подскажешь как добраться до maddox.game.GameServerDef?
    В смысле подключить унаследованный класс. Желательно - к дедикейту.
    Пока не могу, не знаю, постараюсь после патча выложить dll с доступом к GameSingleDef , и позже узнать как к серверу подключиться.

    Цитата Сообщение от Geniok Посмотреть сообщение
    Уважаемый naryv, есть очень большая просьба. Нельзя ли сделать так, чтобы игра игнорировала знаки "=" в файлах ini ?

    То есть сейчас имеем файл campaings.ini:
    "[Main]
    campaign_pk
    campaign_gb
    campaign_de

    А надо чтобы можно было написать так:
    "[Main]
    campaign_pk=
    campaign_gb
    campaign_de

    "
    если честно не понял, зачем так надо.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Прошу уточнить:
    Код:
     public class Mission : AMission
    {    public override void OnTickGame()
        {
                if (Time.tickCounter() % 108000 == 18000) // 60-10 
                {}
                if (Time.tickCounter() % 81000 == 63000) // 45-35
                {}
                if(Time.tickCounter() % 81000 == 81000) // 45-45
    			{}
        }
    }
    1я миссия загрузится через 10 минут с начала хост-миссии и будет повторяться с момента своей 1й загрузки каждые 60 мин.

    2я миссия загрузится через 35 минут с начала хост-миссии (и будет повторяться с момента своей 1й загрузки каждые 45 мин.

    3я миссия загрузится через 45 минут с начала хост-миссии и будет повторяться с момента своей 1й загрузки каждые 45 мин.

    Всё так или временные циклы по-другому отсчитываются?
    первые два правильно, 3-й нет, "%" это остаток от деления, х % 81000 == 81000 никогда не будет, если ничего не путаю, надо так : f(Time.tickCounter() % 81000 == 80999)

    Цитата Сообщение от -atas- Посмотреть сообщение
    upd. Если увеличить радиус airport.cpp до 10000, будет ли это убирать обломки с земли/самолеты на вынужденной во всем радиусе действия? Чем грозит такое увеличение радиуса? Каков верхний предел? 50000, 100000 будет работать?
    airport.cpp не убирает самолёты и обломки, он должен машинки к севшим самолётам подвозить, но не уверен что работает, это очень старый скрипт, как реликт скорее всего остался.
    Don't happy, be worry

  14. #64
    Любопытный
    Регистрация
    03.10.2005
    Адрес
    Киров
    Возраст
    40
    Сообщений
    1,386

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    если честно не понял, зачем так надо.
    Для оффлайн кампаний. Создаем свою кампанию. Устанавливается через инсталятор. ВСЕ инсталяторы, что я пробовал при редактировании ini-файлов сами ставят знак "=".

    То есть если я в инсталяторе пишу Title ля-ля-ля, то при установке получаю Title = ля-ля-ля. А игра знаки "=" не понимает, приходится править потом ini-файл вручную.
    Пр удалении кампании та же ситуация. Деинсталятор не находит в ini-файле ключей, соответственно ничего не удаляет. Опять приходится все чистить ручками. Если бы игра игнорировала знак "=", то любую кампанию можно было бы легко как установить, так и удалить.

    С Уважением!

  15. #65
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    Пока не могу, не знаю, постараюсь после патча выложить dll с доступом к GameSingleDef , и позже узнать как к серверу подключиться.
    После беты?

  16. #66
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Вопросы.

    Несколько вопросов:
    1) Каким образом можно "перекрасить" филд, т.е. отдать его от синих красным, например, по срабатыванию триггера?
    Если делать это загрузкой новой подмиссии, в ней должны присутствовать все старые точки спауна или только одна точка спуна, которая меняется с синего на красный? Исчезнет ли старая синяя точка спауна с аэродрома, если туда погрузится красная?

    2) Старая линия фронта тоже исчезнет, если загрузить новую линию фронта в подмиссии?

    3) Как видоизменить код, чтобы надписи в момент подгрузки под-миссий были разные для синей и для красной стороны?
    Код:
       // loads my sub-missions
        public override void OnTickGame()
        {
    
                if (Time.tickCounter() % 72000 == 18000) // 40-10
                {
                GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/128BoF/128BoFsmGroundv1_0.mis");
                GamePlay.gpHUDLogCenter("Protect friendly shipping in the channel near France!");
                }
    
                if (Time.tickCounter() % 72000 == 71999) // 40-40 
                {
                    GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/128BoF/128BoFsmBombersv1_0.mis");
    				GamePlay.gpHUDLogCenter("Intel: Enemy bombers are heading to blue airfields!"); 
    			}
            
                if (Time.tickCounter() % 72000 == 45000) // 40-25
    			{
                    GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/128BoF/128BoFsmBombersv1_0a.mis");
                    GamePlay.gpHUDLogCenter("Intel: Enemy bombers are heading to red airfields in France!"); 
    			}
    4) Для задания целей в миссии очень хочется предоставить игрокам шорт-кей, показывающий текущие цели, т.е.:

    - в чат игры каждые 10 минут пишем: "Press Shift-S to see current mission objectives! Нажмите Shift-S, чтобы посмотреть текущие цели миссии!" (Shift-S не занят по умолчанию по-моему?)
    - при нажатии клиентом Shift-S выводим на экран последнюю надпись из предыдущего пункта (3), причем разную для разных сторон

    Какой код добавить в скрипт, чтобы это происходило?

    Текущая миссия и скрипт здесь http://www.sukhoi.ru/forum/showthrea...t=68112&page=2
    Хочется уже дать игрокам осмысленные задачи, чтобы они могли влиять на результаты миссий на сервере.
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

  17. #67

    Re: Вопросы.

    Господа, а можно ли сделать так чтоб не выдавать самолет игроку, пока он не приземлился или его не сбили (разбился), ну и плюс удаление ероплана без игрока (в случае выхода с сервера, удачной или вынужденной посадки) и только после этого новый ероплан

  18. #68
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    45
    Сообщений
    6,905
    Images
    51

    Re: Вопросы.

    Цитата Сообщение от Geniok Посмотреть сообщение
    Для оффлайн кампаний. Создаем свою кампанию. Устанавливается через инсталятор. ВСЕ инсталяторы, что я пробовал при редактировании ini-файлов сами ставят знак "=".
    Понятно. Пока про "=" не готов ответить, пока наверное стоит просто предложить игрокам вставлять секцию в инишник, без инсталятора.

    Цитата Сообщение от Mirnyi Посмотреть сообщение
    После беты?
    Не успею, после релиза скорее.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Несколько вопросов:
    1) Каким образом можно "перекрасить" филд, т.е. отдать его от синих красным, например, по срабатыванию триггера?
    Если делать это загрузкой новой подмиссии, в ней должны присутствовать все старые точки спауна или только одна точка спуна, которая меняется с синего на красный? Исчезнет ли старая синяя точка спауна с аэродрома, если туда погрузится красная?
    2) Старая линия фронта тоже исчезнет, если загрузить новую линию фронта в подмиссии?
    не готов точно ответить, можно попробовать подгружать миссию с одной точкой линии фронта на интересующем аэродроме.
    Цитата Сообщение от -atas- Посмотреть сообщение
    3) Как видоизменить код, чтобы надписи в момент подгрузки под-миссий были разные для синей и для красной стороны?
    смотреть армию игрока и выдавать ему соответствующее сообщение

    Цитата Сообщение от -atas- Посмотреть сообщение
    4) Для задания целей в миссии очень хочется предоставить игрокам шорт-кей, показывающий текущие цели, т.е.:

    - в чат игры каждые 10 минут пишем: "Press Shift-S to see current mission objectives! Нажмите Shift-S, чтобы посмотреть текущие цели миссии!" (Shift-S не занят по умолчанию по-моему?)
    - при нажатии клиентом Shift-S выводим на экран последнюю надпись из предыдущего пункта (3), причем разную для разных сторон

    Какой код добавить в скрипт, чтобы это происходило?

    Текущая миссия и скрипт здесь http://www.sukhoi.ru/forum/showthrea...t=68112&page=2
    Хочется уже дать игрокам осмысленные задачи, чтобы они могли влиять на результаты миссий на сервере.
    перехватывать кнопки, не получится, можно вот так, например :
    Код:
    public override void OnPlaceEnter(Player player, AiActor actor, int placeIndex)
        {
            base.OnPlaceEnter(player, actor, placeIndex);
            AiAircraft aircraft = actor as AiAircraft; 
            
            if (aircraft != null)
            switch (aircraft.Army())
            {                
                case 1:
                    if (aircraft.Type() == AircraftType.Bomber)
                    { GamePlay.gpHUDLogCenter(new Player[] {player},"Red Bomber, Bomb it all, hitler caput"); }
                    else { GamePlay.gpHUDLogCenter(new Player[] { player }, "Red Fighter, fight them all"); }
                    break;
                case 2:
                    if (aircraft.Type() == AircraftType.Bomber)
                    { GamePlay.gpHUDLogCenter(new Player[] { player }, "Das bomber!"); }
                    else { GamePlay.gpHUDLogCenter(new Player[] { player }, "Das jager!"); }
                    break;
    
            }
        }
    
        public override void OnAircraftTookOff(int missionNumber, string shortName, AiAircraft aircraft)
        {
            base.OnAircraftTookOff(missionNumber, shortName, aircraft);
    
            if (GamePlay.gpPlayer().Place() != aircraft)
                return;
            
            switch (aircraft.Army())
            {
                case 1:
                    if (aircraft.Type() == AircraftType.Bomber)
                    { GamePlay.gpHUDLogCenter(new Player[] { GamePlay.gpPlayer() }, "Red Bomber, Bomb it all, hitler caput"); }
                    else { GamePlay.gpHUDLogCenter(new Player[] { GamePlay.gpPlayer() }, "Red Fighter, fight them all"); }
                  break;
                case 2:
                    if (aircraft.Type() == AircraftType.Bomber)
                    { GamePlay.gpHUDLogCenter(new Player[] { GamePlay.gpPlayer() }, "Das bomber!"); }
                    else { GamePlay.gpHUDLogCenter(new Player[] { GamePlay.gpPlayer() }, "Das jager!"); }
                  break;
    
            }
        }
    при занятии самолёта игроком - ему напишется задание в зависимости от стороны и типа самолёта - бомбер/нет - это первая функция, и после взлёта - по той же логике - вторая. Можно с таймаутом сообщение показывать.
    Don't happy, be worry

  19. #69

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    не готов точно ответить, можно попробовать подгружать миссию с одной точкой линии фронта на интересующем аэродроме.
    Тут в том проблема, что даже если так сделать, обратно вернуть никак не получится... Старый флажок то никуда не денется.

    Вот и еще одно пожелание нарисовалось
    Было бы чудесно, если бы флажки тоже попали в отслеживаемую статику, а еще лучше, что бы их можно было прикрепить к какой-ни-будь технике/кораблику.

  20. #70
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Вопросы.

    Спасибо за ответы.

    Цитата Сообщение от naryv Посмотреть сообщение
    перехватывать кнопки, не получится
    В Арма2 при заходе на сервер с миссией Warfare (битва за ресурсы) клиент сразу получает кнопку вызова меню (с клавиатуры), которого в самой игре нет, т.е. она назначена в миссии. Кнопка вызывает командное меню, по которому идет навигация кнопками 1-10 (как у нас переговоры). Это меню строительства объектов, управления ресурсами, голосования за командира, выбора целей, то есть всего необходимого в режиме "битва за ресурсы". Всё это есть в миссии, моды ставить не нужно. Как планируется реализовать режим "битва за ресурсы", анонсированный Олегом, если миссия не может перехватывать нажатия клавиатуры?
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

  21. #71

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Спасибо за ответы.



    В Арма2 при заходе на сервер с миссией Warfare (битва за ресурсы) клиент сразу получает кнопку вызова меню (с клавиатуры), которого в самой игре нет, т.е. она назначена в миссии. Кнопка вызывает командное меню, по которому идет навигация кнопками 1-10 (как у нас переговоры). Это меню строительства объектов, управления ресурсами, голосования за командира, выбора целей, то есть всего необходимого в режиме "битва за ресурсы". Всё это есть в миссии, моды ставить не нужно. Как планируется реализовать режим "битва за ресурсы", анонсированный Олегом, если миссия не может перехватывать нажатия клавиатуры?
    Если не ошибаюсь, все это можно будет реализовать с помощью доп. библиотеки на стороне клиента.

  22. #72
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Если не ошибаюсь, все это можно будет реализовать с помощью доп. библиотеки на стороне клиента.
    Коммюнити очень маленькое + моды не все будут ставить = разделение онлайна. Такая библиотека должна входить в стим-версию имхо.

    Как онлайн-миссию тестить прямо из редактора? Много времени занимает бегание по меню, чтобы сервер стартонуть (((

    Крайняя бета вылетает при попытке разместить объект "аэродром". Пришлось откатиться на Стим.

    Покрытие аэродрома как-то выбирается? Один раз аэродром отрендерился с аэродромной травкой, другой раз просто поле с пшеницей ) Бетонку как выбрать?

    Как можно объекты сгруппировать и группу сохранить в файл? Объект аэродром в файл не сохраняется кстати.

    --- Добавлено ---

    Подскажите, пожалуйста, при размещении объекта "аэродром" поверх зашитого в карту аэродрома, при спауне на стоянках в онлайне будут использованы аэродромные пункты аэродрома карты или вновь созданного?

    Возможен ли "старт на стоянке", если не создавать аэродромные пункты, а просто поставить аэродром?
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

  23. #73
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Тут в том проблема, что даже если так сделать, обратно вернуть никак не получится... Старый флажок то никуда не денется.

    Вот и еще одно пожелание нарисовалось
    Было бы чудесно, если бы флажки тоже попали в отслеживаемую статику, а еще лучше, что бы их можно было прикрепить к какой-ни-будь технике/кораблику.
    Нужен прямой доступ ко всем объектам, с возможностью в любое время узнать его состояние или уничтожить.
    В идеале - просто добавить объект и подключиться к событиям произвольных объектов.
    Через подгрузку миссии вариант не нравится тем, что подгружается и скрипт, и из старой миссии объекты новой недоступны, и из новой объекты старой.
    Нужен глобальный класс битвы, с доступом к любым объектам и с доступом из него в любой скрипт загруженной миссии и с обратным доступом.
    И не только к объектам, но и к игрокам (онлайн).
    Возможно, это решится когда удастся задействовать GameServerDef.
    В любом случае, скрипты, не поддающиеся отладке - это не тот инструмент, которым можно сделать серьёзный проект (можно, но геморройно)

  24. #74

    Re: Вопросы.

    Цитата Сообщение от Mirnyi Посмотреть сообщение
    Нужен прямой доступ ко всем объектам, с возможностью в любое время узнать его состояние или уничтожить.
    В идеале - просто добавить объект и подключиться к событиям произвольных объектов.
    Через подгрузку миссии вариант не нравится тем, что подгружается и скрипт, и из старой миссии объекты новой недоступны, и из новой объекты старой.
    Нужен глобальный класс битвы, с доступом к любым объектам и с доступом из него в любой скрипт загруженной миссии и с обратным доступом.
    И не только к объектам, но и к игрокам (онлайн).
    Возможно, это решится когда удастся задействовать GameServerDef.
    В любом случае, скрипты, не поддающиеся отладке - это не тот инструмент, которым можно сделать серьёзный проект (можно, но геморройно)
    Имхо, вся основная логика все равно уйдет в собственную реализацию ABattle, а в скриптах заложены будут базовые действия, необходимые для самой миссии, не более. Насчет недоступности объектов - присвой IsMissionListener значение меньше нуля - будет слушать все миссии. Событие вызовется и передаст короткое имя и номер миссии, инициировавшей событие. Правильно получать полные имена акторов для поиска через GamePlay можно, посмотрев на стат. класс ActorName.

    При невозможности запуска под отладкой вот таких вот дополнений, в схожей задаче делал свою консольку, которая эмулировала "жизнь" на сервере, и спокойно отлаживался.

  25. #75
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Вопросы.

    Каким скриптом можно уничтожить всех акторов в миссии перед ее перезагрузкой (и ручной и плановой)?

    Какие варианты запуска такого скрипта существуют? Можно ли запускать из командной строки сервера, из консоли игры, или только основным скриптом миссии по времени?

    Вопрос неоднократно задавался на форуме 1С владельцами серверов, также связан вот с этим багом http://www.sukhoi.ru/forum/showthrea...=1#post1610136

    Невозможно отлаживать онлайн-миссии в полном редакторе если в них находятся акторы из предыдущей миссии, а выделенные сервера просто виснут при перезагрузке.
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

Страница 3 из 32 ПерваяПервая 123456713 ... КрайняяКрайняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •