Jump to content
Korean Random
GPCracker

Улучшенная система прицеливания / Advanced Aiming System

Recommended Posts

При стрельбе с упреждением по движущейся цели. Если танк противника находиться на расстоянии в 200 метров и едет на фоне гор, до которых 2000 метров, и вы делаете упреждение чтобы попасть по танку, то куда по вашему будет целиться орудие танка? Оно будет целиться в гору, которой 2000 метров, значит угол возвышения у орудия будет большой, значит когда вы выстрелите то снаряд пролетит над танком противника, так как танк находиться на дистанции в 200 метров.

 

Мод позволяет сохранять дистанцию прицеливания в течении нескольких секунд после того как танк противника побывал в прицеле. 

Прошу прощения, не внятно написал, я речь вел о артиллерийском прицеле и о захвате относительной высоты цели. Т.е. суть как это работает я понимаю, но мне не ясно когда это работает (аркада, снайп, артоснайп) я понимаю, что это дает профит при стрельбе с упреждением, но как это работает при выстреле по неподвижному танку (0,5+0,3?) тогда должен быть частый перелет.

Share this post


Link to post

Short link
Share on other sites

При стрельбе с упреждением по движущейся цели. Если танк противника находиться на расстоянии в 200 метров и едет на фоне гор, до которых 2000 метров, и вы делаете упреждение чтобы попасть по танку, то куда по вашему будет целиться орудие танка? Оно будет целиться в гору, которой 2000 метров, значит угол возвышения у орудия будет большой, значит когда вы выстрелите то снаряд пролетит над танком противника, так как танк находиться на дистанции в 200 метров.   Мод позволяет сохранять дистанцию прицеливания в течении нескольких секунд после того как танк противника побывал в прицеле.

Все верно. Так работает мод в снайперском режиме.

Для артиллерии (нормальный вертикальный режим) захватывается не расстояние до цели, а высота.

При ручном захвате высоты - абсолютная высота (y-координата), что позволяет закидывать "под крышу", т.е. под мосты, на вокзал в химках и т.д.

При захвате цели - можно включить поправку на высоту цели, о которой я и писал парой постов выше. Данная фича упрощает стрельбу по движущимся целям. Но нужно точно рассчитать упреждение. Иначе снаряд пролетит рядом с целью и взорвется на безопасном для нее расстоянии. Эффективно при стрельбе ББ.

Но опять же - это для нормального (вертикального) арт-режима. В артоснайпе эти функции будут мешать.

Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites

Прошу прощения, не внятно написал, я речь вел о артиллерийском прицеле и о захвате относительной высоты цели. Т.е. суть как это работает я понимаю, но мне не ясно когда это работает (аркада, снайп, артоснайп) я понимаю, что это дает профит при стрельбе с упреждением, но как это работает при выстреле по неподвижному танку (0,5+0,3?) тогда должен быть частый перелет.

 

Проблема с высотой возникает только если смотришь сверху вниз. Это проблема артиллерийского режима. В остальных режимах взгляд направлен параллельно поверхности земли, это позволяет вам в прицеле выбрать точку прицеливания на противнике по вертикали - гусли, борт корпуса, борт башни, командирская башня. И направить снаряд именно в эту точку. Однако, когда вы смотрите на противника  сверху вы видите только крышу корпуса и крышу башни. Следовательно это единственные высоты прицеливания которые вам доступны. Тогда не удивительно что игрок целящийся в крышу, но думающие что он попадет в борт башни, в реальности просто промахивается и его снаряд тупо перелетает через противника по параболе.

 

В моде же можно высоту скорректировать, так чтобы целясь в крышу, ваше орудие брало прицел чуть ниже и вы уже наверняка попадали бы в борт башни.

Share this post


Link to post

Short link
Share on other sites

неподвижному танку

Не работает, если захваченная цель находится в фокусе (подсвечен контур).

В моде же можно высоту скорректировать, так чтобы целясь в крышу, ваше орудие брало прицел чуть ниже и вы уже наверняка попадали бы в борт башни.

Не совсем. В арт-режиме прицеливания осуществляется на СЕРЕДИНУ ВЫСОТЫ ТАНКА В ТОЧКЕ НАВЕДЕНИЯ.

Пруф

def getDesiredShotPoint(start, dir, onlyOnGround = False, isStrategicMode = False, terrainOnlyCheck = False):
    end = start + dir.scale(10000.0)
    if isStrategicMode:
        if terrainOnlyCheck:
            return __collideTerrainOnly(start, end)
        point1 = __collideStaticOnly(start, end)
        point2 = collideDynamicAndStatic(start, end, (BigWorld.player().playerVehicleID,), skipGun=isStrategicMode)
        if point1 is None or point2 is None:
            point = None
        else:
            dir = Math.Vector3(point2[0]) - Math.Vector3(point1[0])
            point = (Math.Vector3(point1[0]) + dir.scale(0.5), None)
    else:
        point = collideDynamicAndStatic(start, end, (BigWorld.player().playerVehicleID,), skipGun=isStrategicMode)
    if point is not None:
        return point[0]
    elif not onlyOnGround:
        return shootInSkyPoint(start, dir)
    else:
        return

реальности просто промахивается и его снаряд тупо перелетает через противника по параболе.

Промах идет как пролет снаряда над корпусом танка рядом с башней. Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites
Не совсем. В арт-режиме прицеливания осуществляется на СЕРЕДИНУ ВЫСОТЫ ТАНКА В ТОЧКЕ НАВЕДЕНИЯ.

 

50% исходной высоты? Дык это значит точка прицеливания от балды получается. И это для арты с фугасом с копеечным пробитием, не удивительно что пробитие на арте - это рулетка.

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

Благодарю за пояснения, теперь все стало на свои места, единственный вопрос захват относительной высоты работает для всех режимов прицеливания на арте или нет?

Добавлю, в этом патче 9.6 стал замечать странную особенность, снаряд стал чаще уходить в бок (причем в 80% влево), а раньше были в основном недолёты/перелёты...

Edited by vasbelous

Share this post


Link to post

Short link
Share on other sites

50% исходной высоты? Дык это значит точка прицеливания от балды получается. И это для арты с фугасом с копеечным пробитием, не удивительно что пробитие на арте - это рулетка.

Это точка, прицеливание в которую обеспечивает максимальное попадание в танк. Плюс-минус. Точнее целиться нет смысла, у арты и так разброс в пол-экрана.

единственный вопрос захват относительной высоты работает для всех режимов прицеливания на арте или нет?

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

 

Upd. Удалось загнать ResMgr конфиг в UTF-8 w/o BOM. А раньше почему-то не получалось... Перекодирование ввода-вывода та еще проблема...

В сообщениях в ангаре русский вперемешку с немецким нормально идет.) Остальное не тестировал, но то, что реализовано через флеш (стандартные GUI игры) думаю пойдет без проблем. А вот с BW GUI могут возникнуть проблемы - там ограниченные текстурные шрифты. С лёвой проблема с самой первой версии - не отображается вторая буква. Её просто в шрифтах нет...

"А вот и секрет"

<default_small.font>
	<creation>
		<sourceFont>	HGSoeiKakugothicUB	</sourceFont>
		<sourceFontSize>	-15	</sourceFontSize>
		<startChar>	32	</startChar>
		<endChar>	255	</endChar>
		<effectsMargin>	1.0	</effectsMargin>
		<textureMargin>	1.0	</textureMargin>
		<dropShadow>	true	</dropShadow>
		<shadowAlpha>	128	</shadowAlpha>
		<bold>	true	</bold>
	</creation>
	<generated>
		<map>	system/fonts/HGSoeiKakugothicUB_15.dds	</map>
		<mapDimensions>	1024.000000 128.000000	</mapDimensions>
		<maxWidth>	19	</maxWidth>
		<height>	18	</height>
		<uvs>	0000000000060000000c000000150000001f0000002900000038000000450000004b0000005200000059000000610000006c00000072000000790000007f000000850000008f00000099000000a3000000ad000000b7000000c1000000cb000000d5000000df000000e9000000ef000000f5000001000000010b0000011600000121000001320000013d0000014a0000015700000164000001700000017b00000189000001960000019c000001a6000001b3000001be000001cd000001da000001e8000001f4000002020000020f0000021b00000227000002340000023f0000024e0000025a0000026600000270000002770000027d000002840000028f00000299000002a0000002aa000002b5000002bf000002ca000002d5000002dc000002e7000002f2000002f8000002fe000003080000030e0000031c00000327000003320000033d00000348000003500000035a000003610000036c00000377000003840000038e00000397000003a1000003a9000003af000003b7000003c2000003c9000003d8000003e3000003e9000003f100000000002000110020001b002000250020002f00200043002000550020005c0020006e0020007900200088002000940020009f002000a5002000ab002000b5002000bf002000c6002000d0002000e1002000e8002000f90020010a00200111002001210020012b0020013600200140002001420020014d00200156002001600020016a0020017300200179002001830020018f0020019c002001a9002001b3002001be002001c5002001d2002001d8002001e0002001ea002001f0002001f6002001ff0020020a002002140020021a0020022500200238002002420020024c002002520020025e002002680020026e0020027900200286002002930020029e002002ab002002b7002002c7002002d2002002df002002ec002002f70020030400200313002003200020032e0020033b0020034700200354002003600020036b0020037b0020038700200394002003a1002003b1002003c1002003d0002003e1002003ee00200000004000110040001e00400028004000330040003e00400046004000520040005d00400069004000720040007d00400088004000920040009e004000ab004000b6004000c1004000cc004000d7004000e1004000e9004000f2004001020040010c0040011700400122004001300040013e0040014b0040015a004001650040016f0040017e0040	</uvs>
		<widths>	00050005000800090009000e000c0005000600060007000a0005000600050005000900090009000900090009000900090009000900050005000a000a000a000a0010000a000c000c000c000b000a000d000c00050009000c000a000e000c000d000b000d000c000b000b000c000a000e000b000b0009000600050006000a000900060009000a0009000a000a0006000a000a0005000500090005000d000a000a000a000a000700090006000a000a000c000900080009000700050007000a0006000e000a00050007000900100009000900090013001100060011000a000e000b000a00050005000900090006000900100006001000100006000f0009000a00090001000a000800090009000800050009000b000c000c0009000a0006000c000500070009000500050008000a00090005000a0012000900090005000b00090005000a000c000c000a000c000b000f000a000c000c000a000c000e000c000d000c000b000c000b000a000f000b000c000c000f000f000e0010000c000c0010000c0009000a000a0007000b000a000b0008000a000a0009000b000c000a000a000a000a000900070008000f0009000a000a000d000d000c000e000a0009000e000a	</widths>
	</generated>
</default_small.font>
post-21078-0-07696500-1425773238_thumb.png

Шрифты можно генерить, есть в исходниках BW код. Но ставить Студию нет ни времени, ни желания. Как и разбираться в этих кодах. К тому же почти все GUI работает через флэш. В котором в принципе нет проблем со шрифтами, если компилить правильно.

Edited by GPCracker
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
с BW GUI могут возникнуть проблемы - там ограниченные текстурные шрифты. С лёвой проблема с самой первой версии - не отображается вторая буква. Её просто в шрифтах нет...

 

Не так. В font файле ни кто не тебе не мешает снять ограничение на ширину диапазона символов и удалить при этом секцию <generated>

 

<startChar> 0 </startChar>

<endChar> 255 </endChar>

 

И заюзать любой шрифт поддерживающий Unicode, однако, у BW GUI есть проблема с кодовой таблицей, он умеет отображать символы только из конкретных кодовых таблиц и не умеет юникод и не умеет совмещать таблицы.

 

Как результат, берем для примера Courier New и диапазон 0-255 в font. Затем выводим в GUI.Text имена танков из игры 30 штук все за раз в одну строку. И что мы видим английские и русские буквы есть - немецких нет, или немецкие есть - а ни русских ни английских нет. А чтобы одновременно были и английские и русские и немецкие - фиг вам.

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

Не так. В font файле ни кто не тебе не мешает снять ограничение на ширину диапазона символов и удалить при этом секцию <generated>

 

<startChar> 0 </startChar>

<endChar> 255 </endChar>

 

И заюзать любой шрифт поддерживающий Unicode, однако, у BW GUI есть проблема с кодовой таблицей, он умеет отображать символы только из конкретных кодовых таблиц и не умеет юникод и не умеет совмещать таблицы.

 

Как результат, берем для примера Courier New и диапазон 0-255 в font. Затем выводим в GUI.Text имена танков из игры 30 штук все за раз в одну строку. И что мы видим английские и русские буквы есть - немецких нет, или немецкие есть - а ни русских ни английских нет. А чтобы одновременно были и английские и русские и немецкие - фиг вам.

Хм... Но все равно это не решение, т.к.

английские и русские буквы есть - немецких нет, или немецкие есть - а ни русских ни английских нет. А чтобы одновременно были и английские и русские и немецкие - фиг вам.

Share this post


Link to post

Short link
Share on other sites
Хм... Но все равно это не решение, т.к.

 

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

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

Дык, зареплейсить на похожие буквы...

def dirtyEncodingFix(s):
    s = s.replace('\xc3\xa4', 'a')
    s = s.replace('\xc3\xb6', 'o')
    s = s.replace('\xc3\xbc', 'u')
    return unicode(s, 'utf-8')
Умляутов, конечно, не будет, но всё равно лучше выглядит, чем пробел. Edited by MakcT40
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Дык, зареплейсить на похожие буквы...

def dirtyEncodingFix(s):
    s = s.replace('\xc3\xa4', 'a')
    s = s.replace('\xc3\xb6', 'o')
    s = s.replace('\xc3\xbc', 'u')
    return unicode(s, 'utf-8')
Умляутов, конечно, не будет, но всё равно лучше выглядит, чем пробел.

 

 

Этого достаточно для танков или это не всё?

Share this post


Link to post

Short link
Share on other sites

Я в этом не особо разбираюсь , но что , нельзя другой шрифт запилить , тот в котором всё работает , и русс , и нем ? Вот к примеру. Сам для мода CDP панели искал.

Отсюда брал . весьма удобный сайт , видно сразу , будет отображаться эта умляута  и русс буквы или нет. 

http://www.fonts-online.ru

Все работают.rar

Edited by gergauf

Share this post


Link to post

Short link
Share on other sites

Сам для мода CDP панели искал.

Всякие там панели робят на флеше. А тут BW GUI. Это разные вещи. Во флеше вообще нет проблем с кодировками/шрифтами.

Я не встречал названий танков с другими немецкими буквами.

Но наверняка встречал французские.

Share this post


Link to post

Short link
Share on other sites

Проверил я немецкий алфавит, сделал подмены. С французским всё плохо, там не только кракозябликов больше, да еще и не понятно чем их заменять, почитал правила лексики и фонетики - мутота с французами да и только (((

def umlaut_converter(s):
    if s:
        if '\xc3\x84' in s:
            s = s.replace('\xc3\x84', 'A')
        if '\xc3\xa4' in s:
            s = s.replace('\xc3\xa4', 'a')
        if '\xc3\x96' in s:
            s = s.replace('\xc3\x96', 'O')
        if '\xc3\xB6' in s:
            s = s.replace('\xc3\xB6', 'o')
        if '\xe1\xba\x9e' in s:
            s = s.replace('\xe1\xba\x9e', 'SS')
        if '\xc3\x9f' in s:
            s = s.replace('\xc3\x9f', 'ss')
        if '\xc3\x9c' in s:
            s = s.replace('\xc3\x9c', 'U')
        if '\xc3\xbc' in s:
            s = s.replace('\xc3\xbc', 'u')
    return unicode(s, 'utf-8')


 

GPCracker, как правильно время полета снаряда до точки попадания рассчитать?

Share this post


Link to post

Short link
Share on other sites

Всякие там панели робят на флеше. А тут BW GUI. Это разные вещи. Во флеше вообще нет проблем с кодировками/шрифтами.

Понял, отстал...

Share this post


Link to post

Short link
Share on other sites

GPCracker, как правильно время полета снаряда до точки попадания рассчитать?

Самый точный вариант - взять WG функцию расчета углов наведения, функцию расчета точки выстрела.

shotPoint.flatDistTo(targetPoint) / (shotSpeed * math.cos(gunPitch))
Дальше думаю сам сообразишь.

Share this post


Link to post

Short link
Share on other sites

1. Самый простой способ - просто заменять немецкие спецсимволы по следующему правилу:
- ü = ue
- ö = oe
- ä = ae
- ß = ss

это правило общепринято, и все немцы поймут, если написать таким образом.

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...