![]() |
в общем почитываю тему. имхо, использование инженерного подхода и качественных источников делает етот мод весьма привлекательным для реализации. я бы его включил в свой реал пак :)
в чем конкретно проблемы с реализацией? что нужно конкретно сделать для реализации? типовые данные о бомбе: Цитата:
Цитата:
данные о бомбах нужны? Цитата:
Цитата:
|
Цитата:
http://img716.imageshack.us/img716/2994/135932.png |
Цитата:
Мое имхо, проще отработать то что есть. Ебо мусолить формулы это одно, а практически реализовать - совершенно другое. P.S. Трудно картинку в джепег пережать? |
Цитата:
именно этот параметр и отвечает за тип бомбы, насколько я помню. Существующих параметров вполне хватит, не надо ничего добавлять углублять и расширять! Изменение ДМ объектов - совершенно другая тема, хотя и зависимая. Если мы сумеем ввести в формулы тип бомбы, то вполне реально подогнать юомбы ближе к правильной зависимости. Заметьте - я говорбю о зависимости, а не реальных параметрах поражения. В общем хорошо бы, чтоб толковый перец свел в одну кучу всё что обсчитывается сейчас в игре. Чтоб знать от чего оттолкнутся. |
Цитата:
Просто взрыв Взрыв с долгим дымом (АЖ-2) Взрыв с пламенем. |
Цитата:
|
Цитата:
|
http://forum.aviaskins.com/showpost....4&postcount=46
Это формулы из игры по крайней мере в них не использован тип бомбы. А если ввести одну переменную=тип бомбы? Расчет будет идти так же по энергии, но её распределение можно в некоторых пределах регулировать. Например для домов тип=0 ( фугас) имеет коэффициент 1, а тип=1( осколочные) 0.5 Для пушек и машин - наоборот. Это очень упрощенно но уже действенно и безболезненно для процессора и программирования. |
Борада, а из каких классов ты ети формулы то выдрал?
про паур тайп гляну... |
Цитата:
|
тэкс, посмарел цепочку.
в общем бомба летит летит летит и встречаеться с землей. происходят всякие перетурьации, и запускаеться вот что Код:
protected void doExplosion(Actor actor, String s, Point3d point3d) { нас интересует MsgExplosion.send вот он: Код:
{ выделено- там где powertype 1 запускаеться 1 лишний метод(условно моно перевести как "пересчет осколков", т.е. вычисление кол-ва осколков. так что есть разделение :)) правда пока неизвестно, рассчитываеться ли повреждение от осколков...мб ето токо заготовка :) а вот собсна сам код взырвов: Код:
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov. собсна вот ото всего вот етого можете отталкиваеться...вот формулы моделирования взрыва в игре...сами формулы моно если что подрихтовать :) исходя из этого и стоитпересчитывать пармеетры бомб :) по воводу добавлений. скажу сразу, ето можно делать только В КРАЙНЕМ случае, если ето координально меняет картину. ибо сделать можно, но работы много( грю про ся, мб программер опытнее лучше сделает) |
и еще...учтите, что если рихтовать формулы, то эффект будет для ВСЕХ взрывов :)
----- а Борада как раз скинул пост с цитатами, объясняющими действие етих формул. вот такие дела :) |
ыыы.. а в человеческий язык можно перевести? А то я не врубаюсь что такое f а что f1 и прочее.....
Сами формулы работают то достаточно нормально, не надо их менять. А менять исходные данные. Ну и желательно всеж разделить осколочные, если этого нет. |
тэкс) а теперь вторая часть алгоритма просчета))
в общем, в представленном выше коде для каждого объекта есть своя модель взрыва. соотвественно, после запуска взрыва для каждого объекта вызываеться свой расчет повреждений и по ней ведеться расчет. если бомба осколочная, и объект чувтсивтелен: а ето танки,дома, самолеты к осколкам сначала идет расчет осколков вот по такому коду: количество осколков: Код:
00022 void computeSplinterParams(float f) Код:
00036 public float computeSplinterSpeed(float f) само поражение от осколков: Код:
00050 public void computeSplintersHit(Point3d point3d, float f, float f1, float af[]) еще есть для некоторых типов радиус, в котором возможно поражение. он называеться вот так, и рбаотает тоже так: Код:
static boolean com.maddox.il2.ai.Explosion.killable ( ActorMesh actormesh, теперь поехали по типам... Здания: расчет: Код:
{ Код:
if(Explosion.killable(this, explosion.receivedPower(this), prop.MIN_TNT, prop.MAX_TNT, prop.PROBAB_DEATH_WHEN_EXPLOSION)) Код:
float af[] = new float[6]; ------- для поездов, людей, кораблей, ракетной артиллерии(катюш чтоли?), парашютистов, мостов и самолетов: вот етот расчет(если я прально понял) Код:
{ Код:
float f = explosion.power; ------ для танков,артиллерии,машин, самолетов и статических юнитов вот ето: Код:
{ условие умирания на прмиере танка: от осколочных: Код:
от остальных бомб: Код:
else вот такие вот дела) в общем случае, идет расчет дамага(либо от осколков, либо от фугаса), потом он вычитаеться из лайфбара объекта :) иногда добавляетья еще область, в которой поражение зависит от рандома :) вот тако оно собсна рассчитывает...теперь зная ети формулы и способы вычисления осталось просчитать исходные параметры так, чтобы получалось похоже на нужный результат :) или если совсем косяки в формулах-подрихтовать формулы :) токо помните, что рихтовка формул отразиться на всех объектах данного типа! вводить новые параметры бомб, ровно как и менять типа объектов низя. |
итого...порядок причесывания имхо сводиться к такому.
1)знаем данные о реальных бомбах 2) вычисляем данные о эффекте РЕАЛЬНЫХ бомб 3) берем какую либо точку в зоне поражения, и сравниваем отношение эффекта от 2 бомб в реале. запоминаем ето отношение 4) берем данные о игровых бомбах, по формулам считаем дамаг для какогонибудь случая. например для авто. далее берем отношение етих дамагов в точке для двух бомб 5) сравнениваем отношение дамагов к отношению эффективности 6) если большое различие- правим игровые исходные данные, что различие уменьшилось. вот так :) мое имхо :) |
Чудненько! Спасибо за перевод! Думаем....
Цитата:
|
Вопрос, а при расчете осколков что передается функции
void computeSplinterParams(float f) PS Предварительный просмотр показывает, что достаточно тщательно просчитывается действие бомб ( лучше чем я ожидал). Теперь точно уверен что добавлять ничего ненадо. Единственно, есть одна хотелка - внести небольшую зависимость от задержки взрывателя ( а может уже и есть?) |
туда передается масса :)
Цитата:
|
Цитата:
При задержке близкой к нулю осколочные будут наиболее эффективны ( не зарываются в грунт - соответственно настильность осколков лучше) Соответственно если хотите наибольшую эффективность, забудьте от бомбежке с 5 м высоты. Иначе ставим 3-5 секунды ( как сейчас) и спокойно кидаем гладя цель брюхом. Согласен, это уже десятое дело, но если вдруг такое получится простым способом - это будет плюс. С другой стороны - при такой высоте (5-50м) будут ли в реале бомбы зарываться в грунт? Когда вертикальная скорость ниже горизонтальной |
Цитата:
но н едумаю что ето получиться просто. поясню: т.к. бомба и взрыв находятся в разных классах(а мб и в разных ветках) нужно будет налаживать передачу параметра bombdelay оно того не стоит... другой вопрос, что мб там уже передаеться bombdelay - то можно. хуже не будет :) |
Текущее время: 23:39. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot