Крайний раз редактировалось -atas-; 06.06.2011 в 00:59. Причина: неактуально
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Интерфейс компилится в dll, которая передаётся с сервера на клиент. Пока не могу предоставить примеров, но это обычный интерфейс на WPF.
Надо что бы Илья Шевченко выделил время для программистов для создания примеров
Не слышно ни чего про редактор ландшафта ? Есть ли возможность сделать-разнообразить театр действий ?
Вопрос знатокам.
Делаю небольшой АддОн для БЗБ.
Содержание файла SimpleEditor.xml:
<?xml version="1.0" encoding="utf-8"?>
<addin>
<game server="false" name="Simple Editor">
<assembly type="AddOn.SimpleEditor.Campaigns" path="$home/ClientAddIns/AddIns/AddOn/SimpleEditor.dll"/>
<title text="Simple Editor"/>
<title_ru text="Простой редактор"/>
<title_cs text="Simple Editor"/>
<title_de text="Simple Editor"/>
<title_fr text="Simple Editor"/>
<title_it text="Simple Editor"/>
<title_es text="Simple Editor"/>
<title_pl text="Simple Editor"/>
</game>
</addin>
Как видно на скриншоте пункт в меню появляется.
Но реакции на нажатие нет никакой.
Как должно быть организовано взаимодействие между dll и игрой?
AMD Phenom(tm) II X4 955 3.21ГГц, Gigabyte GA-MA770-US3, 4Гб DDR2-800, ATI Radeon HD 5850 1Гб DDR5 256-бит, Microsoft Windows 7 Home SP1 x64, 1920х1080 24"
ответил в личку
AMD Phenom(tm) II X4 955 3.21ГГц, Gigabyte GA-MA770-US3, 4Гб DDR2-800, ATI Radeon HD 5850 1Гб DDR5 256-бит, Microsoft Windows 7 Home SP1 x64, 1920х1080 24"
Еще раз спасибо, с мелкими вопросами типа пересчет счета и изменение логики атак пытаюсь сам разобраться.
У меня просьба на будущее. В версии скрипта для островной карты "кресты и круги" была часть, генерирующая вейпойнты для бомбардировщиков.
Хотелось бы посмотреть пример генерации вейпойнтов для танков, например:
- группа танков захватила маркер
- на маркере генерится оборона из противотанковой артиллерии и немного ПВО для прикрытия арты
- если потери группы танков больше 50% на захваченном маркере генерится новая подмиссия с танками (подкрепление)
- старые и новые танки выдвигаются на сгенеренные вейпойнты
- вейпойнты генерятся, например, по алгоритму:
- если между танками и одним из своих маркеров есть маркер противника, если он не за водной преградой, захватываем его (чтобы в тылу не оставлять незахваченные территории).
- если в радиусе расстояния до этого маркера есть вражеская наземка - атакуем сначала наземку,
Если потери больше 50%, начинаем новый цикл.
Если нет:
- берем координаты 2х ближайших ключевых объектов из числа аэродромов и городов на территории противника
- создаем конечный вейпойнт в точке с координатами посередине между этими пунктами (чтобы в города и на аэродромы не въезжать), если там суша и не остров
- если в радиусе расстояния до этого вейпойнта есть вражеская наземка - атакуем сначала наземку,
- проверяем, есть ли в радиусе маркер противника, захватываетм его
Если потери больше 50%, начинаем новый цикл.
Если нет:
- едем к конечному вейпойнту, захватываем его, ставим на нем маркер линии фронта своего цвета
Количесто возрождений одной и той же группы ограничиваем 3 в рамках одного цикла, затем атакуем в другом месте карты либо атаковать начинает противник. Пока нет менеджмента ресурсов и сапплая это можно сделать рандом выбором, а в дальнейшем привязать к уровню сапплая района: атакует тот, у кого сапплай выше, например.
Может возникнуть проблемка с непроходимостью некоторых участков карты для танков, пока ИИ не выведен на достаточный уровень. Мосты бывают непроходимы для танков. Говорят, реки можно пересекать без мостов по сплайн-дорогам. Против застревания в населенных пунктах можно запретить танкам приближаться к домикам (ставить объездные вейпойнты), и предусмотреть, что если группа не находится на конечном вейпойнте или в бою и при этом не двигается 5 минут, ставить промежуточный вейпойнт где-то сзади и сбоку (чтобы объехать препятствие). В крайнем случае дестроить совсем застрявшую группу и создавать новую с новым маршрутом.
Тем временем постараемся запутить на Repka миссию с подмиссиями нарисованными вручную, что сильно ограничивает регион действий.
Крайний раз редактировалось -atas-; 06.06.2011 в 13:51.
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Не надо изолировать, игра сама изолирует весь пользовательский код внутри виртуальной оболочки, за пределы которой выйти невозможно, нельзя испортить файлы на компьютере клиента, нельзя скачать файлы. Вообщем не получится принести вред и получить запретную информацию.
--- Добавлено ---
В данном официальном релизе игры специально отключена возможность АддОнов. Это не из-за нелюбви к пользователям, а в связи с тем, что готовится к выпуску SDK, которое откроет возможность АддОнов.
Сорри, у меня сейчас времени совсем нет чтобы рабочий скрипт с этими условиями написать .
Вообще наземке путь так задаётся :
у AiGroup есть ф-я SetWay(AiWayPoint[] way) которая пускает группу по пути. Чтобы самому не забивать маршрут, есть ф-я GamePlay.gpFindPath(GP.Point2d a, double ra, GP.Point2d b, double rb, PathType type, int army) , где a - начальная точка пути, b - конечная ra и rb - радиусы, в которых точка считается достигнутой, PathType для наземки PathType.GROUND , ну а army - армия группы. Чтобы пустить группу по маршруту, соответственно надо узнать точки (начальная - Pos() нашей группы), начать считать маршрут
примерно так.Код:IRecalcPathParams cur_rpp = GamePlay.gpFindPath(тут наши параметры пути); т.к. путь ищется в отдельном потоке, в OnTickGame() надо проверять статус маршрута: if (cur_rpp.State == RecalcPathState.SUCCESS) GroundGroup.SetWay(cur_rpp.Path); // если посчитался, тогда командуем группе двигаться
Вообще по идее дома они должны объезжать, но иногда тупят, при этом через некоторое время должны выехать когда построят новый путь.
Don't happy, be worry
А что нужно сделать, чтобы эта dll скачалась и выполнилась на клиенте? Назвать ее так же как и миссию или этого не достаточно? На западе хотят сделать миссию, которая бы перехватывала команды клавиатуры: дать игроку меню заданий, чтобы он сам выбирал из списка. Это тоже в dll нужно компилить и аналогично будет скачиваться с сервера или как-то по-другому?
Еще вопрос как можно парсить то, что игроки пишут в чат? Если это возможно, тогда такое меню можно было бы временно через чат организовать.
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Хочу разместить оборонный заказ.
Т.к. судя по всему МГ такой инструмент не предусмотрела (и это, блин, для сетевой игры), а он крайне нужен онлайну, короче я про то, что можно ли из миссии как то работать с "пингом" пилота, ограничивать максимальный, или потоньше, смотреть "скачет" он у него или нет - и на основе этой информации выводить сообщения, лично ему, всем и как апофеоз кикать его?
Развожу репки и мейн-кунов
Ищу человека территориально из Крымска, Новороссийска или Краснодара, с "приличным" интернетом, просьба "не пыльная", но очень нужно, буду благодарен.
Стучать в личку, в мыло repka@inbox.ru или skype repka-78rus
Intel Core i7-870 2.93 GHz; Gigabyte GA-H55M-UD2H; CoolerMaster Hyper 212 Plus; ATI Radeon HD 6950 2GB+Nvidia 8800 GTS 640 MB; DIMM DDR3 2048MBx2 PC10666 1333MHz Kingston; SATA-II 500Gb Seagate 7200 Barracuda; Mac OS X 10.6.8+Mac OS X 10.7+Win_7 Ultimate и т.д.
Такой вот вопрос образовался. До последнего патча все миссии запускались без проблем. В том числе и снегерированые с помощью "Простого редактора". После установки патча ни одна миссия в офф-лайне не запускается (даже те, что идут с самой игрой в комплекте или сделанные через полный редактор), вылетает вот такое окно (скин прилагаю). После удаления "Простого редактора" все становится на свои места.
В патче что-нибудь меняли в области взаимодействия со сторонними Аддонами?
Что посоветуете делать в подобной ситуации?
AMD Phenom(tm) II X4 955 3.21ГГц, Gigabyte GA-MA770-US3, 4Гб DDR2-800, ATI Radeon HD 5850 1Гб DDR5 256-бит, Microsoft Windows 7 Home SP1 x64, 1920х1080 24"
Вот пример, как сделать свою кампанию:
TstCampaign.rar
кладётся всё в корень игры, в AddIns, соответственно добавляется tst.campaign.xml в которой прописан пункт в меню и путь к обработчику кампании, который в parts кладётся(дописывать в исходный campaign.xml больше ничего не надо, игра сканирует все xml в папке AddIns), в папке mission будут собственно файлы кампании, в parts\tst\src\Campaign исходники, TstMission.cs - базовый класс для миссии, TstCampaign.cs - обработчик кампании. При работе кампании в "Моих документах\папка игры\mission" создастся папка "tst" в которой будет инишник с состоянием прохождения, ну и всё что нужно для процесса и статистики туда можно писать. Т.о. не надо менять никакие исходные конфиги для своих кампаний, стим не будет при проверке кэша и обновлениях ничего затирать, и инсталяторам не надо мудрить с перезаписью.
По поводу ошибки которая у Вас вылезает - не понятно пока. Как Вы миссии делаете и запускаете?
Don't happy, be worry
Судя по вашему ответу вы не поняли в чем проблема. Я не про миссии и кампании речь веду. Файл "campaign.xml" не менял и менять не собирался.
Просто включаю стандартную миссию (одну их тех, что идет с самой игрой, в "быстром редакторе") и получаю такую ошибку. Ошибка есть только при установленном "простом редакторе" вот отсюда: http://www.sukhoi.ru/forum/showthrea...t=69933&page=1 (который опять же написан мною, и у него отдельный xml-файл)
Если его удалить, то все работает нормально.
Пошаговая отладка ничего не дает, потому что ошибка возникает именно при загрузке миссии, то есть когда работа моего "простого редактора" уже закончена.
Появилась эта проблема с последнего беты-патча и само-собой осталась в релизе.
AMD Phenom(tm) II X4 955 3.21ГГц, Gigabyte GA-MA770-US3, 4Гб DDR2-800, ATI Radeon HD 5850 1Гб DDR5 256-бит, Microsoft Windows 7 Home SP1 x64, 1920х1080 24"
я понял, просто параллельно показал, что менялось и как пользоваться новым механизмом. Вы, если не ошибаюсь, как раз и интересовались насчёт кампаний, которые бы не портились стимом.
ну я же не могу знать, как и что Вы в "простом редакторе" делаете, редактор я поставил, мне он пишет "No Map in mission file", поэтому и спросил - как Вы миссии делаете и запускаете?
Don't happy, be worry