Текущее время: 28 мар 2024, 21:59



Ответить на тему  [ Сообщений: 75 ]  На страницу Пред.  1, 2, 3
Вопрос по дескам 
Автор Сообщение
Лейтенант

Зарегистрирован: 12 янв 2012, 05:22
Сообщений: 2268
Откуда: МВО
Сообщение Re: Юниты для игры Противостояние
eks2004 писал(а):
А вот комментарий? Он может быть русским?
Комментарии в кодировке ANSI, весь текст должен быть заключен в кавычки (") - иначе "останется" только первое слово - до пробела. Перенос строки также недопустим. Кроме того, есть ограничение на кол.символов (сколько точно - не помню, но это легко проверить). Если надо больше - то использовать еще один оператор *comment

_________________
Изображение

Приумножая познания, приумножаешь и скорбь.....(с)


15 июл 2017, 23:35
Профиль ICQ
Ефрейтор
Аватар пользователя

Зарегистрирован: 25 апр 2017, 16:27
Сообщений: 32
Откуда: Петербург
Сообщение Re: Юниты для игры Противостояние
Ага, спасибо, попробую. Можете ещё рассказать, по какой формуле рассчитывается получаемый урон? Не просто же значение shot_damage убавляется, там ведь учитывается и броня?

_________________
Помогите слонику (т.е. мне) разобраться в сложных тонкостях мира (т.е. в РВГ).


16 июл 2017, 13:05
Профиль
Лейтенант

Зарегистрирован: 12 янв 2012, 05:22
Сообщений: 2268
Откуда: МВО
Сообщение Re: Вопрос по дескам
В своё время кто-то из Fireglow специально для Sardaukar-а (того самого автора MultiModSwitcher) сделал такую картинку:
Вложение:
demag.png

Поражающий фактор:
(ShDn/Shdlt)*ShDn = DF

Остаток здоровья:
DMG = HP - DF

Где:
ShDn - ShotX_damage (номинальная указанная в деске юнита поражающая сила оружия)
ShDlt - Shot_delta (значение коэффициента, указанного в MISC\misc для выбранного hitsnames рассматриваемого оружия).
DF - поражающий фактор
DMG - Остаток здоровья юнита, после прямого попадания рассматриваемого оружия
HP - хитпойнты обстреливаемого юнита (здоровье), указанные в деске юнита.

Красное поле на картинке - выстрел не может пробить броню, зеленое - пробивает.


У вас нет доступа для просмотра вложений в этом сообщении.

_________________
Изображение

Приумножая познания, приумножаешь и скорбь.....(с)


16 июл 2017, 14:54
Профиль ICQ
Ефрейтор
Аватар пользователя

Зарегистрирован: 25 апр 2017, 16:27
Сообщений: 32
Откуда: Петербург
Сообщение Re: Вопрос по дескам
zarathustra писал(а):
ShDlt - Shot_delta (значение коэффициента, указанного в MISC\misc для выбранного hitsnames рассматриваемого оружия).

Ага, ну сосчитать-то сосчитаю, но вот.. Можете ли вы расписать типы выстрела (hittypes)? Просто непонятно, кто стреляет blast'ами, а кто crewkiller.
Стоп... ShDn = 9000, ShDlt = 256 (Pierce). 9000:256=35 (Грубо говоря), 35*9000=315000... Так что ли? И как тогда рассчитать?

_________________
Помогите слонику (т.е. мне) разобраться в сложных тонкостях мира (т.е. в РВГ).


16 июл 2017, 15:24
Профиль
Лейтенант

Зарегистрирован: 12 янв 2012, 05:22
Сообщений: 2268
Откуда: МВО
Сообщение Re: Вопрос по дескам
Идентификатор каждого оружия прописан в деске, например:
shot_id pierce000
причём прочие параметры у разных юнитов (как правило) отличаются - damage, deadzone (+ еще дальность, скорострельность, скорость снаряда - но это в данном случае несущественно).

Кроме того, есть ещё значение add - это повреждение, которое юнит получает (целенаправленно или косвенно).
Но всё ... как бы ... несколько сложнее: система просто идеальна для танков - пробил/не пробил и сколько "снял". Проблема в том, что в игре не только танки. Например:
    - у корабля нет бронирования, но это не значит, что он должен "убиваться" с одного выстрела из любой пушки (а именно так и будет, если мы не пропишем ему armor. А если пропишем - то он также (как и танк) будет пробиваться или нет - со всеми вытекающими
    - противотанковой болванке нужен минимальный радиус (иначе она будет "валить" всё вокруг) - но тогда при падении такого снаряда под ноги пеха он даже и не чихнёт - что, собственно, мы и видим в некоторых модах (например, в РВГ3 - они вообще пошли по простому пути: снесли всё, в чём не смогли разобраться + естественно, и не добавили ничего нового)
    - отдельная тема - моральное "давление" и критические повреждения, например: одна пуля может попасть в двигатель самолета и ему этого хватит
    - ну и совсем "веселуха" - кроме юнитов есть ещё и объекты: дома, столбы там всякие и мосты

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

РС Давным-давно игровую "общественность" не устраивало, что битая техника быстро исчезает. Время же нахождения остова на карте зависит исключительно от НР - ну и подняли его всем под самую планку. И все вроде бы хорошо, но за всё надо расплачиваться: теперь, к примеру, и танк весом 30т. и монитор водоизмещением 10000т. имеют очень близкие значения НР - а поднять его уже некуда. Как следствие - один и тот же снаряд наносит сопоставимые повреждения при схожих параметрах бронирования. Полагаю, казус и сложность его преодоления понятны без лишних слов.
А у тех же мостов ВООБЩЕ нет брони - и при близких значениях НР это такая "головная боль".... %(
Всё это требует, мягко говоря, нетрадиционных и витиеватых методов решения.

_________________
Изображение

Приумножая познания, приумножаешь и скорбь.....(с)


16 июл 2017, 17:27
Профиль ICQ
Ефрейтор
Аватар пользователя

Зарегистрирован: 25 апр 2017, 16:27
Сообщений: 32
Откуда: Петербург
Сообщение Re: Вопрос по дескам
zarathustra писал(а):
Идентификатор каждого оружия прописан в дестке, например:
shot_id pierce000
причём прочие параметры у разных юнитов (как правило) отличаются - damage, deadzone (+ еще дальность, скорострельность, скорость снаряда - но это в данном случае несущественно).

Кроме того, есть ещё значение add - это повреждение, которое юнит получает (целенаправленно или косвенно).
Но всё ... как бы ... несколько сложнее: система просто идеальна для танков - пробил/не пробил и сколько "снял". Проблема в том, что в игре не только танки. Например:
    - у корабля нет бронирования, но это не значит, что он должен "убиваться" с одного выстрела из любой пушки (а именно так и будет, если мы не пропишем ему armor. А если пропишем - то он также (как и танк) будет пробиваться или нет - со всеми вытекающими
    - противотанковой болванке нужен минимальный радиус (иначе она будет "валить" всё вокруг) - но тогда при падении такого снаряда под ноги пеха он даже и не чихнёт - что, собственно, мы и видим в некоторых модах (например, в РВГ3 - они вообще пошли по простому пути: снесли всё, в чём не смогли разобраться + естественно, и не добавили ничего нового)
    - отдельная тема - моральное "давление" и критические повреждения, например: одна пуля может попасть в двигатель самолета и ему этого хватит
    - ну и совсем "веселуха" - кроме юнитов есть ещё и объекты: дома, столбы там всякие и мосты

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

РС Давным-давно игровую "общественность" не устраивало, что битая техника быстро исчезает. Время же нахождения остова на карте зависит исключительно от НР - ну и подняли его всем под самую планку. И все вроде бы хорошо, но за всё надо расплачиваться: теперь, к примеру, и танк весом 30т. и монитор водоизмещением 10000т. имеют очень близкие значения НР - а поднять его уже некуда. Как следствие - один и тот же снаряд наносит сопоставимые повреждения при схожих параметрах бронирования. Полагаю, казус и сложность его преодоления понятны без лишних слов.
А у тех же мостов ВООБЩЕ нет брони - и при близких значениях НР это такая "головная боль".... %(
Всё это требует, мягко говоря, нетрадиционных и витиеватых методов решения.

Сложнааа. Ок, тогда всё же, сложно ли будет подсчитать, сколько дамага получит танк противника при эдакой броне и эдаким уроном моего снаряда?

_________________
Помогите слонику (т.е. мне) разобраться в сложных тонкостях мира (т.е. в РВГ).


16 июл 2017, 20:03
Профиль
Лейтенант

Зарегистрирован: 12 янв 2012, 05:22
Сообщений: 2268
Откуда: МВО
Сообщение Re: Вопрос по дескам
eks2004 писал(а):
Сложнааа.
На самом деле - не особо, надо просто понять.
Возьмём, к примеру, дивизионную пушку Ф-22 из нашего мода (деск zis-3) и выстрелим из неё
shot_id pierce007 (урон и прочее рассматривать не будем, просто структуру работы)
Этому идентификатору соответствует shot pierce007:
body trasser3 - след снаряда
checkstolb 1 - прямая траектория стрельбы (т.е. не навесом)
dz 10 - дед-зона
destroyland all -vor -unit - повреждает "землю" везде, за исключением: под воронками, под юнитом
explosionrnd 1 - вероятность проявления взрыва - всегда
explosion default spl007 - тип взрыва по умолчанию, т.е. если не указан для конкретной поверхности
explosion beton p007.b - тип взрыва для "поверхности" beton и далее...
explosion dom p007.d
explosion gun p007.t
explosion light p007.t
explosion okop p007.o
explosion ship p003.dust
explosion tank p007.t
explosion tral p007.t

hitid pierce - идентификатор выстрела (из hitsnames)

Разберём для наглядности выстрел по танку.

Мы в него попали: будет проигран explosion tank p007.t
animats 2 - будет приграно две анимации
animat_1 blood_hit fl_shadow - первая
animat_2 splash fl_smoke 0 0 0 1 - вторая (с небольшим смещением, чтобы "разгрузить" процессор)
addshot crit007 - будет добавлен ещё один shot - crit007
addshotdmg 1920 - демаг добавочного шота
addshotrnd .1 - вероятность его "появления" (в долях от 1)
addshotnum 1 1 - кол. анимаций, которое будет проиграно
sound tankhit .3 perm 0 1 - звук при попадании (будет звучать с приоритетом 0.3 и постоянно)

При этом будет как раз и задействована та самая формула, по которой танк и получит (или не получит) повреждение. А вот далее, если у нас сработает вероятность 0.1 (addshotrnd .1), будет проигран еще один shot - crit007:
checkstolb 1 - всё по аналогии выше
dz 10
explosionrnd 1
destroyland all -vor -unit
explosion ship crit007

explosion tank crit007 - именно этот explosion у нас и проиграется
explosion tral crit007
hitid crewkiller - с этим идентификатором выстрела

Тут опять будет задествована та же формула, но уже с hitid crewkiller с "силой" 1920

Едем по цепочке дальше, explosion crit007:
addshot crit
addshotdmg 880
addshotrnd .75
addshotnum 1 1
addshotaccuracy 1 1


Этот выстрел мы не увидим (анимации нет), но он добавит еще один shot crit силой 880 с вероятностью 0,75 и идентификатором hitid building (см. ниже)
Смотрим shot crit:
explosion ship crit_death
explosion tank crit_death
hitid building


Соответственно, т.к. у нас танк, мы увидим (если он сработает по вероятности) explosion crit_death:
/не увидим, т.к анимации нет! - но он проиграется
addshot crit_death
addshotdmg 32500
addshotrnd .02
addshotnum 1 1
addshotaccuracy 1 1


И потянет за собой следом ещё один shot crit_death силой 32500 с вероятностью 0,02 и идентификатором hitid building (см. ниже)
explosion default tank_boom
hitid building


При этом опять будет проигран explosion tank_boom:
animats 1
animat_1 ammoboom fl_max
vor 5
addshot fire_benz
addshotdmg 120
addshotrnd .03
addshotnum 1 5
addshotaccuracy 0 64
addshotdelay 1 40
sound explo_300up .3 perm 0 1


Который, в свою очередь, потянет shot fire_benz силой 120 с вероятностью 0,03 разбросом от 0 до 64 и идентификатором hitid fire (см. ниже), и "проиграется это от 1 до 5 раз:
dz 16
destroyland all -vor -zabor -most -unit
explosionrnd 1
explosion default fuel_tank
explosion water walkonwater
hitid fire


Посольку у нас танк (а по факту - уже земля, т.к. танк уже ... того...), а не вода, то проиграется анимация explosion fuel_tank:
animats 3
animat_1 light_big fl_shadow
animat_2 cistern fl_smoke 0 16 0 0
animat_3 b_most_smoke fl_select 0 32 0 0
vor 2
addshot fire
addshotdmg 240
addshotrnd .61
addshotnum 1 100
addshotaccuracy 0 16
addshotdelay 25 30
sound fire .3 perm 0 1


Из него видно, что он тянет за собой shot fire:
checkstolb 1
dz 16
destroyland all -vor -unit -zabor
explosionrnd 1
explosion default fire
explosion petrol fire_big
explosion plane fire_big
explosion vehicle fire_big
explosion water walkonwater
hitid fire


Который проиграет дефолтный explosion fire:
animats 1
animat_1 fire fl_smoke
vor 5
addshot fire_sol
addshotdmg 64
addshotrnd .32
addshotnum 1 1
addshotdelay 0 5


Он, в свою очередь, потянет shot fire_sol силой 64 с вероятностью 0,32 с задержкой от 0 до 5 и идентификатором hitid fire (см. ниже):
checkstolb 1
dz 16
destroyland all -vor -unit -zabor -most
explosionrnd 1
explosion default solyara
explosion soldier fire
explosion water walkonwater
hitid fire


Который проиграет explosion solyara:
animats 1
animat_1 fire fl_smoke
vor 5
addshot fire_sol
addshotdmg 32
addshotrnd .99
addshotnum 1 2
addshotaccuracy 0 3
addshotdelay 2 30


Который потянет shot fire_sol силой 32 с вероятностью 0,99 разбросом от 0 до 3 с задержкой от 2 до 30 и идентификатором hitid fire и будет проигран 1 или 2 раза.

Далее совсем интересно: круг замыкается (т.е. мы получаем петлю) и если бы вероятность была везде равна 1, то игра бы у нас "повисла" или, как минимум, стала бы дико тормозить.
Но, к счастью, вероятность у нас ниже еденицы и в игре мы увидим (конечно, в том случае, если "кривая" доползет до этого места) что подбитый танк будет гореть, причем делать он это будет:
1. довольно долго
2. рандомно (т.е. каждый раз по новой схеме)
3. "бензин" от горящего танка (уже давно остова) будет "растекаться" и гореть так же рандомно.


Вот такая простенькая схемка просчитывается (надо понимать, что ДЛЯ КАЖДОГО шота движек задействует ту самую формулу) при каждом выстреле каждого оружия каждого юнита в игре "laugh"

eks2004 писал(а):
сложно ли будет подсчитать, сколько дамага получит танк противника при эдакой броне и эдаким уроном моего снаряда?
напишу попозжее, а то мозоли на пальцах уже.

_________________
Изображение

Приумножая познания, приумножаешь и скорбь.....(с)


16 июл 2017, 22:49
Профиль ICQ
Ефрейтор
Аватар пользователя

Зарегистрирован: 25 апр 2017, 16:27
Сообщений: 32
Откуда: Петербург
Сообщение Re: Вопрос по дескам
zarathustra писал(а):
напишу попозжее, а то мозоли на пальцах уже.

Спасибо за простенькую схемку! На счёт мозолей верю... У меня такие же будут на мозге, пока я это всё переваривать буду. Но... Очень постараюсь.

_________________
Помогите слонику (т.е. мне) разобраться в сложных тонкостях мира (т.е. в РВГ).


16 июл 2017, 23:35
Профиль
Лейтенант

Зарегистрирован: 12 янв 2012, 05:22
Сообщений: 2268
Откуда: МВО
Сообщение Re: Вопрос по дескам
Надо понимать, что это полный цикл и в реальности всё будет произвольно короче: цепочка может оборваться в любом месте, где вероятность ниже 1 - естественно, что все последующие события уже не отиграют.

К сожалению, невозможно "пропустить" какой-либо шаг и двигаться дальше. Нельзя и сделать "вилку", т.е. добавить (на выбор) два (или больше) дополнительных шота.
В рассмотренном выше варианте у нас последовательно:
    1. Нанесен урон танку (shot pierce007)
    2. Нанесен урон экипажу (shot crit007)
    3. Нанесен критический удар по танку (shot crit)
    4. Нанесен фатальный критический удар по танку (shot crit_death)
    5. Танк вспыхнул (shot fire_benz)
    6. Стал "разгораться" (shot fire_sol)
    7. Далее п.6 => п.7 с некоторым "затуханием" повторяются

Вернёмся к нашей Ф-22: мы выстрелили в танк и попали (что, как известно, бывает далеко не всегда). А если мы промазали?
В таком случае мы, скорее всего, попадем в землю и снаряд у нас волшебным образом из простой болванки превратится в осколочно-фугасный. Разберем и этот случай.
shot pierce007:
body trasser3
checkstolb 1
dz 10
destroyland all -vor -unit
explosionrnd 1
explosion default spl007
explosion beton p007.b
explosion dom p007.d
explosion gun p007.t
explosion light p007.t
explosion okop p007.o
explosion ship p003.dust
explosion tank p007.t
explosion tral p007.t
hitid pierce


При попадении в землю у нас сработает explosion spl007 (как дефолтный, т.к. грунт отдельно не прописан):
addshot expl007
addshotdmg 3840 4800
addshotrnd 1
addshotnum 1 1

Он со 100% вероятностью потянет за собой shot expl007 с демагом от 3840 до 4800 и hitid blast

hitid blast ударит "взрывной волной" по всему, до чего сможет дотянуться:
destroyland all -unit
explosionrnd 1
explosion default p007.dust
explosion beton p007.b
explosion dom p007.d
explosion okop p007.o
explosion sand p007.s
explosion water p007.w
hitid blast


И проиграет (скорее всего) либо дефолтный p007.dust, либо (если под ногами окажется песок) p007.s
Будем считать, что просто земля (т.е. p007.dust)
animats 4
animat_1 light_big fl_shadow
animat_2 dust fl_shadow 0 0 0 1
animat_3 a_v24 fl_smoke 0 0 1 0
animat_4 b_most_smoke fl_select 0 0 46 1
vor 2
addshot bullet
addshotdmg 0 896
addshotrnd 1
addshotnum 18 36
addshotaccuracy 1 64
addshotdelay 1 6
sound 75_explo .3 perm 0 1


Он отрисует нам красивый взрыв из 4 анимаций с "музыкой", оставит воронку второй группы и со 100% вероятностью добавит shot bullet с демагом от 0 до 896, с разбросом от 1 до 64, с задержкой от 1 до 6 и повторит это от 18 до 36 раз.
В игре же мы увидим как хаотично разлетаются осколки.

КАЖДЫЙ такой осколок дальше будет жить своей жизнью и обсчитываться игрой тоже будет отдельно. shot bullet:
checkstolb 1
dz 8
explosionrnd 1
explosion default bullet.dust
explosion beton bullet.b
explosion crate bullet.l
explosion dom bullet.d
explosion fueltank bullet.f
explosion gun bullet.l
explosion light bullet.l
explosion okop bullet.o
explosion petrol bullet.l
explosion plane bullet.p
explosion ship bullet.t
explosion soldier bullet.m
explosion tank bullet.t
explosion tral bullet.t
explosion vehicle bullet.l
explosion water bullet.w
hitid machine


Как видно, вариантов масса и почти все они - разные. Но мы же стреляли в танк. Именно в танк осколок и попал. :)
Значит проигрывается explosion bullet.t с одной анимацией и звуком:
animats 1
animat_1 bullboom fl_smoke
addshot heavymg
addshotdmg 1200 2400
addshotrnd .12
addshotnum 1 1
sound bullet .1 perm 0 1


Как видно, будет добавлен один shot heavymg с вероятностью 0,12 и демагом от 1200 до 2400 и идентификатором hitid transpierce:
body trasserx
checkstolb 1
dz 6
explosionrnd 1
explosion default hmg.dust
explosion beton bullet.b
explosion crate bullet.l
explosion dom bullet.d
explosion fueltank bullet.f
explosion gun bullet.l
explosion light bullet.l
explosion petrol bullet.f
explosion plane bullet.p
explosion ship hmg.t
explosion soldier killsold
explosion tank hmg.t
explosion tral hmg.t
explosion vehicle bullet.l
explosion water hmg.w
hitid transpierce


Опять много вариантов и опять у нас танк )) Значит - explosion hmg.t:
animats 1
animat_1 chpok fl_smoke
addshot crithmg
addshotdmg 896 1280
addshotrnd .1
addshotnum 1 1
addshotdelay 1 1
sound metall .2 perm 0 1


Тут мы увидим и услышим "дзынь" по броне + с вероятностью 0,1 будет нанесен дополнительный удар shot crithmg силою от 896 до 1280 с задержкой 1 и hitid transpierce
dz 10
explosionrnd 1
explosion ship hmg.t2
explosion tank hmg.t2
explosion tral hmg.t2
hitid transpierce


Который, в свою очередь, проиграет нам explosion hmg.t2:
addshot crew_killer
addshotdmg 200 400
addshotrnd .4
addshotnum 0 1
addshotdelay 1 10


Тут мы ничего не увидим и не услышим, зато экипаж получит "в репу" шотом crew_killer силою от 200 до 400, с вероятностью 0,4 задержкою от 1 до 10 с hitid crewkiller Но! Этот удар может и попасть и нет, т.к. addshotnum 0 1 - т.е. проигран он будет от 0 до 1 раз.

Допустим, проигрался:
checkstolb 1
dz 10
explosionrnd .02
explosion dom bullet.d
explosion okop bullet.d
hitid crewkiller


И ничего не случилось, т.к. последствия возможны только для домов и окопов (а у нас, как мы помним - танк).

Примерно так всё и происходит.

_________________
Изображение

Приумножая познания, приумножаешь и скорбь.....(с)


17 июл 2017, 01:32
Профиль ICQ
Ефрейтор
Аватар пользователя

Зарегистрирован: 25 апр 2017, 16:27
Сообщений: 32
Откуда: Петербург
Сообщение Re: Вопрос по дескам
Ок, очень постараюсь разобраться. Но у меня тут вот какая мысль вспыхнула: а можно ли самому сделать ещё один тип прицепа (priceptype)?

_________________
Помогите слонику (т.е. мне) разобраться в сложных тонкостях мира (т.е. в РВГ).


17 июл 2017, 12:43
Профиль
Лейтенант

Зарегистрирован: 12 янв 2012, 05:22
Сообщений: 2268
Откуда: МВО
Сообщение Re: Вопрос по дескам
eks2004 писал(а):
можно ли самому сделать ещё один тип прицепа (priceptype)?
Конечно.
Добавляем новый класс в список priceptypes
В деске юнита пишем:
havepricep <класс>
pricepspeed <класс> 1 (вместо еденицы ставим нужное значение)

Вернёмся к стрельбе из нашей пушки.
На что хотел обратить внимание: часто на форумах (в том числе и нашем) встречаешь многостраничный ...э.... дискуссию :) на темы типа: "должен ли XXX пробивать YYY !?" Споры жаркие, частенько чуть не до кровной вражды. И очень редко можно встретить вопросы вроде: "а чё это XXX выбивает экипаж из YYY !?"
Вопрос, конечно, важный, но давайте внимательно посмотрим: в нашем случае с Ф-22 задействованы:
hitid pierce
hitid crewkiller
hitid building
hitid fire
hitid blast
hitid machine
hitid transpierce


Итого: семь!!! из 14 вообще имеющихся! А ведь мы рассмотрели всего только два варианта из всего множества. А если прокрутить все цепочки, то в наш список с большой долей вероятности попадут почти все hitid
Т.е. в процессе поражения так или иначе задействованы почти все типы, и именно весь комплекс "отрисовывает" ту самую картинку, которая и создаёт впечатление реальности происходящего. Но всех по-прежнему интерисует прежде всего противостояние брони и снаряда.


Разберем подробно работу формулы
У нас имеются параметры:

msd1 msd2 - из misc shot_damage первый и второй
msa1 msa2 - из misc shot_armor первый и второй
delta - из misc shot_delta
dsd - из desc shot_damage - демаг деска оружия
da - из desc armor - броня из деска (от 0 до 255)
D(x) - эквивалент x брони в демаге

В итоге получаем:
D(x) = (msd2 - msd1) / (msa2 - msa1) * x + (msd1 * msa2 - msd2 * msa1) / (msa2 - msa1)

И поражающий фактор будет:
DF(dsd,da) = (dsd - D(da)) * dsd / delta

Реальный дамаг RD(dsd,da) будет равен:
0, если DF <= 0
DF, если 0 < DF <= dsd
dsd, если dsd < DF

Чтобы понять, пробьет ли dsd демага da брони смотрим наш график:

Изображение

Если попали выше линии - не пробьет, если ниже - пробьет.
При delta = 1 это означает, что при переходе через линию происходит переход от 0 реального демага к dsd реального демага.

Зависимость реального демага от dsd и delta при фиксированной броне и коэффициентах из misc
Вложение:
delta_armor.png


На юнита действует часть damage над линией.
Сила регулируется параметром shot_delta(говоря по русски, это коэффициент, на который делится оставшаяся часть).

Рассмотрим несколько примеров.

Самый простой вариант - линейная зависимость: для защиты от 1 единицы damage требуется 1 единица armor
shot_damage pierce 1 256
shot_armor pierce 1 256
shot_delta pierce 1000


Чтобы понять динамику: для защиты от 1 единицы damage нужно уже 0.25 armor
При этом повреждения в случае пробития будут больше.
shot_damage pierce 4 1024
shot_armor pierce 1 256
shot_delta pierce 1000


При уменьшении shot_delta повреждения будут больше.

Если мы напишем в деске юнита:
armor pierce 256 256 256 256 256 256
protection pierce 256 256 256 256 256 256

то юнит с shot_id pierce не только не сможет ничего сделать этому юниту, но и не будет по нему даже стрелять.
Именно так, например, "блокируется" атака стрелковым оружием тех же танков.


У вас нет доступа для просмотра вложений в этом сообщении.

_________________
Изображение

Приумножая познания, приумножаешь и скорбь.....(с)


17 июл 2017, 13:47
Профиль ICQ
Ефрейтор
Аватар пользователя

Зарегистрирован: 25 апр 2017, 16:27
Сообщений: 32
Откуда: Петербург
Сообщение Re: Вопрос по дескам
Окей,
msd1 msd2 - 128, 25600
msa1 msa2 - 1, 200
delta - 256
dsd - 9100
da - 50
D(x) - эквивалент x брони в демаге (??? В смысле эквивалент?)
Получилось так:
D(x)=(25600-128)/(200-1)*50(Тут броня тогда должна быть?)+(128*200-25600*1)/(200-1)
D(50)=6400
DF=(9100-6400)*9100/256
DF=95976.6

Получается,
RD=dsd, если:
0<95976.6, но не <= dsd
и DF>0
Всё правильно?

_________________
Помогите слонику (т.е. мне) разобраться в сложных тонкостях мира (т.е. в РВГ).


17 июл 2017, 15:26
Профиль
Ефрейтор
Аватар пользователя

Зарегистрирован: 25 апр 2017, 16:27
Сообщений: 32
Откуда: Петербург
Сообщение Re: Вопрос по дескам
zarathustra писал(а):
Если мы напишем в деске юнита:
armor pierce 256 256 256 256 256 256
protection pierce 256 256 256 256 256 256

то юнит с shot_id pierce не только не сможет ничего сделать этому юниту, но и не будет по нему даже стрелять.
Именно так, например, "блокируется" атака стрелковым оружием тех же танков.

Странно, я прописал для КВ-1С armor и protection по всем hittypes на 256, но танк всё равно как-то убивали. Я против него Maus ставил.
Ещё вопросик, можно ли задать shot_delta меньше 1, а в частности .000000001?

_________________
Помогите слонику (т.е. мне) разобраться в сложных тонкостях мира (т.е. в РВГ).


19 июл 2017, 00:10
Профиль
Лейтенант

Зарегистрирован: 12 янв 2012, 05:22
Сообщений: 2268
Откуда: МВО
Сообщение Re: Вопрос по дескам
eks2004 писал(а):
прописал для КВ-1С armor и protection по всем hittypes на 256, но танк всё равно как-то убивали. Я против него Maus ставил.
Странно, по логике - такого быть не должно. Но тут надо всю цепочку просматривать.
eks2004 писал(а):
можно ли задать shot_delta меньше 1, а в частности .000000001?
Не могу сказать - не пробовал никогда. Зачем!?
Если игра загрузится - значит можно. Как будет воспринимать - тоже вопрос. Только не понятно для чего такой экстрим.

_________________
Изображение

Приумножая познания, приумножаешь и скорбь.....(с)


21 июл 2017, 19:52
Профиль ICQ
Ефрейтор
Аватар пользователя

Зарегистрирован: 25 апр 2017, 16:27
Сообщений: 32
Откуда: Петербург
Сообщение Re: Вопрос по дескам
zarathustra писал(а):
Если игра загрузится - значит можно. Как будет воспринимать - тоже вопрос. Только не понятно для чего такой экстрим.

А я это, хотел попробовать создать новый hittype и прописать для него это. Если мы число делим на дробь, которая <1, то результат получится больше, чем делимое. И вот, мы получим такой вот огромненький урон, способный одним шотом разобьёт корабль.
Ещё вот хотел спросить: ты вот писал про цепочку выстрелов,
zarathustra писал(а):
Возьмём, к примеру, дивизионную пушку Ф-22 из нашего мода (деск zis-3) и выстрелим из неё
. Может вопрос до крайности глупый, но где это всё прописывается?

_________________
Помогите слонику (т.е. мне) разобраться в сложных тонкостях мира (т.е. в РВГ).


21 июл 2017, 21:51
Профиль
Лейтенант

Зарегистрирован: 12 янв 2012, 05:22
Сообщений: 2268
Откуда: МВО
Сообщение Re: Вопрос по дескам
eks2004 писал(а):
где это всё прописывается?
Я же всё расписал!
Идентификатор каждого оружия юнита прописан в дестке:
shot_accuracy 81 45
shot_animat shotsmokeb
shot_animation shot320bdsm
shot_burstreloadtime 100 80
shot_burstshots 1 1
shot_damage 5728 5728
shot_deadzone 81 81
shot_endburstsound reload4 .3 perm 0 1
shot_id pierce007
shot_range 1015 1117
shot_sound 75ll-76mm .3 perm 0 1
shot_speed 119 119
shot_useammo 1 1


Это ИМЯ файла (в данном случае) Dat\"схема"_desc\shots\pierce007

Вот он и определяет все параметры выстрела:
explosion default spl007
explosion beton p007.b
explosion dom p007.d
explosion gun p007.t
explosion light p007.t
explosion okop p007.o
explosion ship p003.dust
explosion tank p007.t
explosion tral p007.t

где:
explosion "тип поверхности" "имя файла" для указанных "повехностей. В данном случае (для типа по умолчанию):
Dat\"схема"_desc\explosions\spl007
и т.д.

_________________
Изображение

Приумножая познания, приумножаешь и скорбь.....(с)


22 июл 2017, 01:11
Профиль ICQ
Ефрейтор
Аватар пользователя

Зарегистрирован: 25 апр 2017, 16:27
Сообщений: 32
Откуда: Петербург
Сообщение Re: Вопрос по дескам
zarathustra писал(а):
(в данном случае) Dat\"схема"_desc\shots\pierce007

Да не, я имел ввиду местонахождение в файлах игры. Спасибо!

_________________
Помогите слонику (т.е. мне) разобраться в сложных тонкостях мира (т.е. в РВГ).


22 июл 2017, 01:33
Профиль
Ефрейтор
Аватар пользователя

Зарегистрирован: 25 апр 2017, 16:27
Сообщений: 32
Откуда: Петербург
Сообщение Re: Вопрос по дескам
Извините, а можете мне как-то попробовать объяснить, как редактировать графику пехоты?

_________________
Помогите слонику (т.е. мне) разобраться в сложных тонкостях мира (т.е. в РВГ).


14 авг 2017, 23:24
Профиль
Лейтенант

Зарегистрирован: 12 янв 2012, 05:22
Сообщений: 2268
Откуда: МВО
Сообщение Re: Вопрос по дескам
Это Вы, батенька, замахнулись на эээ Уильяма понимаете ли Шекспира :)
Ручками ... Каждый кадр - ручками ...
Любой из этих прог:
Вложение:
rs2manager.zip
Вложение:
Soldiers.zip

Графика состоит из 10 блоков, каждый блок - из 8 анимаций (8 направлений). От количества кадров в анимации зависит длительность и плавность движения.
Раскадровка:
01-08 - стоит
09-16 - лежит
17-24 - 1 оружие стоя
25-32 - 1 оружие лёжа
33-40 - бежит
41-48 - ползёт
49-56 - 2 оружие стоя
57-64 - 2 оружие лёжа
65-72 - убит стоя
73-80 - убит лёжа

Важно:
Обязательно (в рабочей директории) должен присутствовать файл палитры sold.pl
В файле HEADERS.TXT каждой анимации перечислить все фреймы и указать их смещение
У некоторых пехов могут (за ненадобностью) отсутствовать некоторые блоки.


У вас нет доступа для просмотра вложений в этом сообщении.

_________________
Изображение

Приумножая познания, приумножаешь и скорбь.....(с)


15 авг 2017, 00:21
Профиль ICQ
Ефрейтор
Аватар пользователя

Зарегистрирован: 25 апр 2017, 16:27
Сообщений: 32
Откуда: Петербург
Сообщение Re: Вопрос по дескам
zarathustra писал(а):
Ручками ... Каждый кадр - ручками ...

Прям ручками-ручками? Никаких 3ДС максов и прочего?

_________________
Помогите слонику (т.е. мне) разобраться в сложных тонкостях мира (т.е. в РВГ).


16 авг 2017, 00:09
Профиль
Лейтенант

Зарегистрирован: 12 янв 2012, 05:22
Сообщений: 2268
Откуда: МВО
Сообщение Re: Вопрос по дескам
eks2004 писал(а):
Прям ручками-ручками? Никаких 3ДС максов и прочего?
Если хочешь переделать пехотинца - как тебе тут поможет 3ДС макс и прочее? Есть 3D-модель или прочее от Fireglow?
Если сделать самому - нового - то такие попытки были, но я не видел ни одного проекта, доведённого до финала.

_________________
Изображение

Приумножая познания, приумножаешь и скорбь.....(с)


16 авг 2017, 00:20
Профиль ICQ
Ефрейтор
Аватар пользователя

Зарегистрирован: 25 апр 2017, 16:27
Сообщений: 32
Откуда: Петербург
Сообщение Re: Вопрос по дескам
zarathustra писал(а):
Любой из этих прог:
Вложение:
rs2manager.zip
Вложение:
Soldiers.zip


Попробовал, но ни одна прога не согласилась.
В rs2manager'е шла вечная загрузка .rs2, а Soldiers ссылался на отсутствие каких-то библиотек и вырубался. :(

_________________
Помогите слонику (т.е. мне) разобраться в сложных тонкостях мира (т.е. в РВГ).


16 авг 2017, 00:34
Профиль
Лейтенант

Зарегистрирован: 12 янв 2012, 05:22
Сообщений: 2268
Откуда: МВО
Сообщение Re: Вопрос по дескам
eks2004 писал(а):
В rs2manager'е шла вечная загрузка .rs2,
Очевидно, нет файла настроек.
eks2004 писал(а):
Soldiers ссылался на отсутствие каких-то библиотек и вырубался.
Легко качаются с мягкотелых

Перезалил:
инсталятор rs2manager
Soldiers с библиотеками

_________________
Изображение

Приумножая познания, приумножаешь и скорбь.....(с)


16 авг 2017, 11:54
Профиль ICQ
Лейтенант

Зарегистрирован: 12 янв 2012, 05:22
Сообщений: 2268
Откуда: МВО
Сообщение Re: Вопрос по дескам
P.S.
Предостерегаю от ошибок Rafshan "клеить" самых лучших в истории игр и модов пехов наскоро - это не простой, и самое главное: кропотливый труд!
Пусть это будет долго, путь будет мало - один/два, но ЗАКОНЧЕННЫХ: со всеми кадрами, с правильной центровкой и без дыр, приводящих если и не к вылетам, то уж к истерическому смеху или недоумению - однозначно.
Поверь: стабильность и логическое завершение гораздо важнее всяких ушанок/кокард и пр. дребедени.

_________________
Изображение

Приумножая познания, приумножаешь и скорбь.....(с)


16 авг 2017, 13:21
Профиль ICQ
Ефрейтор
Аватар пользователя

Зарегистрирован: 25 апр 2017, 16:27
Сообщений: 32
Откуда: Петербург
Сообщение Re: Вопрос по дескам
zarathustra писал(а):
P.S.
Предостерегаю от ошибок Rafshan "клеить" самых лучших в истории игр и модов пехов наскоро - это не простой, и самое главное: кропотливый труд!
Пусть это будет долго, путь будет мало - один/два, но ЗАКОНЧЕННЫХ: со всеми кадрами, с правильной центровкой и без дыр, приводящих если и не к вылетам, то уж к истерическому смеху или недоумению - однозначно.
Поверь: стабильность и логическое завершение гораздо важнее всяких ушанок/кокард и пр. дребедени.

Да я и не собираюсь что-то феноменальное делать. ;) Просто я ради прикола создал пехотинца, который может с одного шота взорвать боеукладку танку\орудию\тральщику и т.д.
Я брал за основу текстуру снайпера, но для отличия - просто хочу начертить на стволе 3 красных полосы и удлинить его.

_________________
Помогите слонику (т.е. мне) разобраться в сложных тонкостях мира (т.е. в РВГ).


16 авг 2017, 22:07
Профиль
Показать сообщения за:  Сортировать по:  
Ответить на тему   [ Сообщений: 75 ]  На страницу Пред.  1, 2, 3

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


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

Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF.
Русская поддержка phpBB