После оффлайн тестов на №2 в тестовом режиме поставлен базовый рандомайзер миссий.
"mission objectives updated." - загружена миссия1
"mission objectives updated.." - миссия 2
"mission objectives updated..." - миссия 3
Повтор одинаковой миссии 2 раза подряд исключен.
Всем спасибо за помощь!!!
Код:// v.1_17_05. script by FG28_Kodiak, ZaltysZ, oreva, small_bee using System; using maddox.game; using maddox.game.world; using System.Collections.Generic; public class Mission : AMission { int LastMissionLoaded = 0; double initTime; // loading sub-missions public override void OnTickGame() { if (Time.tickCounter() % 45000 == 9000) // 45000=25 min repeat. 9000=5 min delay. { // randomly selects 1 of several submissions excluding the recent one Random RandomIncident = new Random(); int CurrentMissionSelected; do { CurrentMissionSelected = RandomIncident.Next(1, 4); } while (LastMissionLoaded == CurrentMissionSelected); LastMissionLoaded = CurrentMissionSelected; switch (CurrentMissionSelected) { case 1: GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/BoF1/BoF1_air01.mis"); GamePlay.gpHUDLogCenter("mission objectives updated."); //600 initTime = 0.0; Timeout(initTime += 600, () => { GamePlay.gpHUDLogCenter("Attention! Enemy activity is expected at E3!"); }); Timeout(initTime += 600, () => { GamePlay.gpHUDLogCenter("Attention! Help is needed at E3/D4!"); }); break; case 2: GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/BoF1/BoF1_sea01.mis"); GamePlay.gpHUDLogCenter("mission objectives updated.."); //500 initTime = 0.0; Timeout(initTime += 500, () => { GamePlay.gpHUDLogCenter("Attention! Cover your shipping at C4!"); }); Timeout(initTime += 300, () => { GamePlay.gpHUDLogCenter("Attention! Ships are under attack at C4!"); }); break; case 3: GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/BoF1/BoF1_air02.mis"); GamePlay.gpHUDLogCenter("mission objectives updated..."); //600 initTime = 0.0; Timeout(initTime += 600, () => { GamePlay.gpHUDLogCenter("Attention! Enemy activity is expected at E2!"); }); Timeout(initTime += 300, () => { GamePlay.gpHUDLogCenter("Attention! All airgroups please proceed to E2/D3!"); }); break; } } /////////////////////// //loads small submissions w/o messages if (Time.tickCounter() % 216000 == 108000) // 216000=120 min repeat. 108000=60 min delay. { GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/BoF1/BoF1_small01.mis"); } if (Time.tickCounter() % 216000 == 215999) // 216000=120 min repeat. 215999=120 min delay. { GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/BoF1/BoF1_small02.mis"); } } //////////////////////////////////////////////////////////////////////////////////////////////////// // destroys aircraft abandoned by a player. private bool isAiControlledPlane (AiAircraft aircraft) { if (aircraft == null) { return false; } Player [] players = GamePlay.gpRemotePlayers (); foreach (Player p in players) { if (p != null && (p.Place () is AiAircraft) && (p.Place () as AiAircraft) == aircraft) { return false; } } return true; } private void destroyPlane (AiAircraft aircraft) { if (aircraft != null) { aircraft.Destroy (); } } private void explodeFuelTank (AiAircraft aircraft) { if (aircraft != null) { aircraft.hitNamed (part.NamedDamageTypes.FuelTank0Exploded); } } private void destroyAiControlledPlane (AiAircraft aircraft) { if (isAiControlledPlane (aircraft)) { destroyPlane (aircraft); } } private void damageAiControlledPlane (AiActor actor) { if (actor == null || !(actor is AiAircraft)) { return; } AiAircraft aircraft = (actor as AiAircraft); if (!isAiControlledPlane (aircraft)) { return; } if (aircraft == null) { return; } aircraft.hitNamed (part.NamedDamageTypes.ControlsElevatorDisabled); aircraft.hitNamed (part.NamedDamageTypes.ControlsAileronsDisabled); aircraft.hitNamed (part.NamedDamageTypes.ControlsRudderDisabled); aircraft.hitNamed (part.NamedDamageTypes.FuelPumpFailure); int iNumOfEngines = (aircraft.Group() as AiAirGroup).aircraftEnginesNum(); for (int i = 0; i < iNumOfEngines; i++) { aircraft.hitNamed((part.NamedDamageTypes)Enum.Parse(typeof(part.NamedDamageTypes), "Eng" + i.ToString() + "TotalFailure")); } /***Timeout (240, () => {explodeFuelTank (aircraft);} ); * ***/ Timeout (300, () => {destroyPlane (aircraft);} ); } ////////////////////////////////////////// public override void OnPlaceLeave (Player player, AiActor actor, int placeIndex) { base.OnPlaceLeave (player, actor, placeIndex); Timeout (1, () => {damageAiControlledPlane (actor);} ); } public override void OnAircraftCrashLanded (int missionNumber, string shortName, AiAircraft aircraft) { base.OnAircraftCrashLanded (missionNumber, shortName, aircraft); Timeout (300, () => { destroyPlane(aircraft); } ); } public override void OnAircraftLanded (int missionNumber, string shortName, AiAircraft aircraft) { base.OnAircraftLanded(missionNumber, shortName, aircraft); Timeout(300, () => { destroyPlane(aircraft); } ); } ////////////////////////////////////////////////////////////////////////////////////////////////// //Listen to events of every mission public override void Init(maddox.game.ABattle battle, int missionNumber) { base.Init(battle, missionNumber); MissionNumberListener = -1; //Listen to events of every mission } ////////////////////////////////////////////////////////////////////////////////////////////////// //Ground objects (except AA Guns) will die after 55 min when counted from their birth public override void OnActorCreated(int missionNumber, string shortName, AiActor actor) { base.OnActorCreated(missionNumber, shortName, actor); //Ground objects (except AA Guns) will die after 55 min when counted from their birth if (actor is AiGroundActor) if ((actor as AiGroundActor).Type() != maddox.game.world.AiGroundActorType.AAGun) Timeout(3300, () => { if (actor != null) { (actor as AiGroundActor).Destroy(); } } ); } /**** //Ground objects will die after 55 min when counted from their birth public override void OnActorCreated(int missionNumber, string shortName, AiActor actor) { base.OnActorCreated(missionNumber, shortName, actor); //Ground objects will die after 55 min when counted from their birth if (actor is AiGroundActor) Timeout(3300, () => { if (actor != null) { (actor as AiGroundActor).Destroy(); } } ); } ****/ }
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
На сервере Repka1 сегодня в ~22.30 по Москве летали британские лодки-бипланы Walrus`ы с бесконечным запасом бомб. При атаке Walrus`ов они эти бомбы рассыпали партиями по 30-40 шт. Как следствие куча взрывов и просадка ФПС. Скриншот к сожалению не сделал(
Спасибо, что пишите... Если лень или нет возможности писать в баги - кидайте сюда...
А вообще заметил одну фишку, очень положительно действует на разрабов если писать не сюда, на сухой, где у нас происходит дружеское и неформальное общение, а вот сюда support@softclub.ru.
Была вот такая проблема http://www.sukhoi.ru/forum/showthread.php?t=68306
Не поленился написал - в ПЕРВОМ же патче все убрали
DRM
* Система защиты СтарФорс была удалена из игры. Битва за Британию теперь не требует
второго ключа дла аутентикации. ВНИМАНИЕ: это произойдет автоматически и не
требует каких-либо действий с Вашей стороны.
Хотя проблема совсем не первостепенная...
Не то что бы я предлагал начать повальное "ябедничество" но... вообщем, хозяйке на заметку
--- Добавлено ---
10-30 по москве, наблюдаю HotasBoy на 2м - есть желающие поохотится?![]()
А как будет работать наземка когда завершим тестирование и выложим на сервер?
В виде одной из миссий в ротации (т.е какое-то число часов\минут будет посвещано исключительно битве за наземное преимущество)? В виде части текущих миссий?
Завтра если будет время отдельно найду нормальный пулемёт-ПВО для Англов. Надеюсь на включение пулемётного охранения на филдах Репки :-)
Есть мысль еще добавить несимметричные танковые наезды малых групп танков на филды в D3 и пустить все это в ротации с наложением во времени друг на друга. Это будет цикл из 6 миссий. либо можно сделать 2 независимых цикла - наземка и авианалеты+корабли. можно и по другому.
Сейчас подмиссии грузятся каждые 25 минут, но бомберы могут летать до 50 минут, т.е. 2 подмиссии накладываются во времени. Танки могут ехать к цели минут 10-15 до момента соприкосновения, а в конце танковой баталии уже прилетят бомберы из следующей миссии бомбить филды. Пока не совсем ясно, как будет лучше в итоге.
====================
До меня наконец-то дошло как привязывать тригер к скрипту загружающему подмиссию. Не прошло и года.
Игра остается скучной, пока нет борьбы за какие-то виртуальные ценности.
Вопрос: чем бы вы хотели вознаградить себя и наказать противника в случае победы в подмиссии (например уничтожили все бомберы, или ваши танки доехали до точки Х).
Какие бонусы игрокам будет интересно получить? Можно создать дополнительно бомберов или истребителей натравить на спауны врага, танки направить и т.п., подвинуть линию фронта, ... Что вызовет наибольший азарт? Нужны свежие идеи.
В подмиссии мы можем подгрузить все кроме зданий и подобных объектов.
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
А какие есть варианты награды? Это могут быть только всеобщие ценности (+1 бобёр на нашей стороне и всё такое) или какие-то личные награды?
ИМХО нехватает неких ура-патриотических брифингов ("Немецкие танки уже топчут наши поля!" или "Захватили [филднейм], захватим и Берлин!"), желательно с плакатами. Вообще брифинги в онлайне работают?
Ещё, в связи с грядущим вводом наземки и вообще модой на штурмовку филднов было бы здорово ввести сообщения о таких событиях.
--- Добавлено ---
И было бы не плохо определиться сейчас с работой на завтра\послезавтра.
Текущее время подьезда танков устраивает?
Я так понимаю на рандеву-филде (названия сейчас не могу глянуть) победившая сторона подтягивает ПВО и таким образом если обеспечить ей пару побед там будет нехилая такая позиция с зенитками, танками и прочим. Возможно ли автоматически выводить на экран сообщение о том, кому удалось отбить заветный филд?
У меня сейчас англы едут не с того филда, который был обговорён изначально (соответственно немцы тоже штурмуют новый филд). Можно оставить текущий или нужно как-то присобачить их к старому (там как мы помним лес)?
- может быть только то, что можно поставить в миссию в редакторе, минус здания и что-то еще
- сообщения на весь экран немного раздражают, когда целишься в кого-то. В чат писать бесполезно, он забит. Сейчас идут сообщения в среднем каждые 15 минут, что уже может раздражать. Разработчикам вопрос задан про hudlog в теме "вопросы", но молчат. Если кто знает как писать мельче и синим и в нижней четверти экрана, подскажите.
- брифинги не работают, пишите в багрепорты. я 3 раза писал )
- время: до анонса на экране следующей миссии 35 минут. все желательно закончить минут за 1-5 до этого
- филд оккупировать пока не планировал, надо посмотреть. там дистанции слишком маленькие, чтобы сближать филды противников. посмотрим еще.
- при захвате будут сообщения, но позже, на следующем этапе
- пусть едут с этого где сейчас (южного). Но в случае победы немцев они через южный доедут почти до северного, на котором крсный спаун, чтобы издалека пострелять по самолетам.
- в связи с новыми идеями по наземке необходимо сбалансировать 3ку Ю-88 или Дорнье, работающих по танкам с пологого пикирования с высоты 1000-2000м необходимым количеством Бленхеймов, работающих с такой же высоты или ниже, если нужно повысить точность. Всех разбиваем на 3 звена (в свойствах группы), последовательно назначаем 3 цели, чтобы они разделили группу.
FW и Wellingtons нацеливаем на атаку филдов с 2000м.
Эту миссию включим в догфайтную ротацию.
Сейчас появилась концепция многоэтапной танковой баталии, где группы танков продвигаются поэтапно по триггерам с остановками, и на каждом этапе их можно уничтожить. Но это требует времени на осмысление, и помощи программистов при реализации. Осваивайте С# )
Текущая катра тесновата для серьезных баталий, но обкатаем всё на ней как на полигоне. Да и увеличивать при таком количестве народа в онлайне пока рановато.
--- Добавлено ---
Можем триггер прикрутить, чтобы после взлета баки взрывались. LOL![]()
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Движение ЛФ было бы самым лучшим стимулом![]()
"...с новым проектом мой рассудок и здравый смысл, а сердце с БзБ". (с) eekz
Лучше какое нидь сообщение, в стиле "Делу время, а потехе час"Можем триггер прикрутить, чтобы после взлета баки взрывались. LOL![]()
Зашли к вам вчерась сквадом -полетали.Впечатления.
1.Ну канешна подтормаживает,микрофризы, фпс прыгает и т.д.Но терпимо.Вопрос to atas --может пока выключить тряску--и так колбасит не по-детски.
Зашли за красных.Франция.Войнушка.А на чём летать красным бомбёрам.На Blenheim-4.Тяжко-т.к. в этом патче недоразвитый он какой-то--греется жуть.Ну ладно -уменьшив газ и главное убрав шаг до мин. взлетел с 2* 500ми .Более менее можно комфортно летать .А дальше что -куда лететь -шо робыть.Минут 10 крутился возле разбитой нефтебазы -искал пока меня не нашли 2 голодных месса и подожгли.Вывод
to atas.Пока в брифинге не работает фоторазведка надо здесь на первой стр. выкладывать короткий брифинг -задачи для синей и красной сторон.Квадрат такой то сектор такой то --задача.А так незнакомым людям трудно понять что делать на карте.И в итоге боты сами по себе воюють а люди садятся на месов- или спитов-догфайт чистый воды.
3.Баланс.Тут конешно трудно .У красных один Бленхейм .У синих можно сесть и на жужу и на хенк и штуку и на " крокодил '' BR-20 .Даже мес с бомбой ..Слава богу пока ещё нет 110к. Предлагаю движение линии фронта с захватом филдов и соответственно трофейніх сам. Будет стимол тогда летать на красніх бомберах -двигать линию фронта.
Вобщем развитие серва неплохое.Прикололо .Сели на спитов( от безнадёги).Оказівается мессы в бобе тоже взрываются в воздухе если хорошенько попасть.
Спасибо за комментарии.
Тряску вроде бы уменьшили в крайней бете. Без нее аркада совсем получается, пробовали. Если будут жалобы, еще уменьшат, а если отключать, все останется как есть.
Сервер пока - догфайтная песочница для изучения возможностей движка. Картоделов и программистов пока не хватает, поэтому все есть как есть )) Присоединяйтесь к разработке!
Брифинг разработчики не сделали (
Для истребителей задачи пишутся на экране каждые 15-20 минут.
Цели бомберов - 3 нефтебазы - D4, D2/3 и E2 (пока их боты не вынесли), корабли и аэродромы. Добавятся танки. Про танки тоже напишем на экране.
Карту можно изучить на Repka#2 с иконками
https://lh6.googleusercontent.com/_S...5-18_00004.jpg
Я лично против трофейных самолетов по многим причинам. Давайте дружно просить разработчиков дать красные бомберы. Пока этого нет, видимо придется баланс бомберов основывать на ботах: боты долетели - всё разбомбили, а если не долетели - всё выживет. Возможно, немцам придется резать бомбовую загрузку, т.е. запрещать живым пилотам таскать бомбы на всем, что не похоже не Бленхейм по ТТХ: 109, 110, Не-111 и др. так что стучитесь к разработчикам все вместе, чтобы не пришлось через год на Ил-2 во Франции воевать ))).
Если есть другие идеи, предлагайте.
Еще раз спасибо за отзыв!
Крайний раз редактировалось -atas-; 18.05.2011 в 12:48.
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Атас, не надо изобретать велосипед. Самый лучший стимул - движение линии фронта, вплоть до полного разгрома противника. А как эта линия движется - здесь уже море для фантазии. Все остальные стимулы - добавить 2 танка, 1 бомбовоз, 2 машинки... это всё не то. Добавляться юниты должны при движении линии, например при захвате новой деревни и филда. Захватили деревню - пополнение, чтобы двигать войска далее. Основная военная сила - наземка, только она может захватывать деревни/филды. Танки приехали в деревню, уничтожили всех противников, отсчитывается еще какое-то определенное время (добивали партизанов), и деревня переходит в другие руки. Бомберы, штурмы - для подавления атакующей наземки, для защиты деревень. И для уничтожения защитной наземки, для помощи при захвате деревень. В итоге основная движущая сила отнюдь не истребители.
На малых картах с отдельными островами должны быть порты и корабли. На некоторые корабли добавить скрипты, типа для перевозки наземки. Наземка приехала в порт, загрузилась на корабль (уничтожилась скриптом). Доплыл такой корабль живым до чужого острова - сразу на берегу отспаунилась уничтоженная скриптом ранее наземка. Атакуем деревню. Захватили - близлежащий порт наш, и новая наземка наша. Двигаемся к следующему острову.
Эх мечты...
(И даже это всё старо как мир. Это по сути обычный захват флаговНо другого более азартного стимула я даже и не знаю.)
небольшой тематический креатиффчик
![]()
Вау! Это круто! Художник?
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Дизайнёр. Учусь пока.
Не... А как похож!? Молодец.
В армии чуть, нечто похожее, не наколол себе
--- Добавлено ---
Обновил, кеш удалил... все рестартнул, дефрагментнул... на 2м тока рука дрогнула, запустил с ротацией... переделать уже не успел - люди уже были![]()
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
обновлюсь сегодня до официального и попробую зайти...что-то все предыдущие попытки оканчивались по-разному, но неудачно.