A.I.M. Jagged Alliance2

Добро пожаловать, Гость. Пожалуйста, выберите:
Вход || Регистрация.
28.03.2024 в 19:21:41

Главная Главная Помощь Помощь Поиск Поиск Участники Участники Вход Вход Регистрация Регистрация
A.I.M. « Наука и религия в исходниках НО. »
Тут обсуждают, что Терапевт должен сделать, чтобы мне было хорошо.

   A.I.M.
   Обсуждаем игры
   Night Ops
(Модераторы: Терапевт, ПМ, maks_tm)
   Наука и религия в исходниках НО.
« Предыдущая Тема | Следующая Тема »
  Тема:  Наука и религия в исходниках НО.             Страниц:  1     « Открыть сокрытое! »Прочитано 68507 раз
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Наука и религия в исходниках НО.
« от 14.11.2010 в 02:18:41 »

Вот, картинка возможных точек поражения в центрах оснований "кубиков" жсд в ДжА и НО.
 
(Шарики из пластика - потому и блики на них. А теней нет - выключены)
 
Желтый шар - голова врага, в которую нацелен пулемет.
Ниже "земли" - тоже есть шарики, но их не видно. Да, вот!
 
Полагаю, в таком клуче реально формировать любой эллипс рассеяния, для любого оружия, хоть "летающего кинжала"!
 
Если добавить еще два таких массива - перед и после показанного, то получаемое 3-х-мерное, дискретное пространство вполне заменит реальный эллипсоид(!) рассеяния.
 

 
А физика в движке довольно серьезно расписана...
Вот прицепился!       MG_field_of_possible_hits.png
« Изменён в : 14.11.2010 в 02:21:13 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Наука и религия в исходниках НО.
« Ответ #1 от 14.11.2010 в 02:30:37 »

14.11.2010 в 02:18:41, Bonarienz писал(a):
Полагаю, в таком клуче реально формировать любой эллипс рассеяния, для любого оружия, хоть "летающего кинжала"!  

Продолжайте. ))) Я просто мысль не ловлю. Ну вывел, допустим, у нас есть формула этого эллипса. В каком виде она нужна? В виде формулы эксцентриситета + одного из поперечников? В виде формул двух поперечников? Ну допустим, у нас они есть F1(N) и F2(N). дальше что?
Зарегистрирован

aazmav
[Айзер]
Прирожденный Джаец

Колбасит


Ё-мэйл

Пол:
Репутация: +18
Re: Наука и религия в исходниках НО.
« Ответ #2 от 14.11.2010 в 02:39:33 »

Мне кажется, что в этом случае конус более уместен, чем эллипс
Зарегистрирован

Все врут...
Luficer
[Аццкий Сотона]
Прирожденный Джаец

Да, это негр :)


Ё-мэйл

Пол:
Репутация: +318
Re: Наука и религия в исходниках НО.
« Ответ #3 от 14.11.2010 в 02:41:37 »

14.11.2010 в 02:18:41, Bonarienz писал(a):
Если добавить еще два таких массива - перед и после показанного, то получаемое 3-х-мерное, дискретное пространство вполне заменит реальный эллипсоид(!) рассеяния.  

 
3 раза прочитал - не вкурил.  
 
Сейчас имеем что? целимся в голову - можем попасть в любой из представленных шариков. Если на месте шарика будет стена/голова - попадание на той же плоскости увидим. Если шарик под землей, либо стены нет - увидим попадание, соответственно, либо до либо после плоскости.
 
"3-х-мерное, дискретное пространство" о котором ты говоришь даст ту же визуальную картину.
 
Зачем изобретается велосипед?
- для изменения картины попадания - нет, те же яйца.
- для приближения к жизни в расчете точности попадания  - проще добавить каждому оружию в рассеивание что-то вроде RND/х, где х - субъективная "точность" ствола в интервале 0.01-1, при этом 1 - самая навороченная снайперская винтовка, к примеру.  
 
 : rolleyes :
Зарегистрирован

Ночью в тёмных переулках Астаны слышно цоканье копытцев Сотоны.
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Наука и религия в исходниках НО.
« Ответ #4 от 14.11.2010 в 02:46:10 »

14.11.2010 в 02:41:37, Luficer писал(a):
Зачем изобретается велосипед?  

Вот-вот. Как я понимаю, хочется построить реалистичную модель очереди. Но я хоть убей не пойму, зачем выводить "эллипс", когда в конце концов вычисление шанса все равно сведется к функции от тех же переменных с теми же параметрами, так не все ли равно какая она будет? Если очень хочется, можно просчитать модель ОДИН РАЗ, построить кривую вероятностей, а потом подобрать похожую функцию, да блин хоть полином Чебышева с 2мя членами. И всё. Вводить просчет эллипсов в движок игры - излишество. Имхр.
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Наука и религия в исходниках НО.
« Ответ #5 от 14.11.2010 в 02:55:11 »

2Dirk_Diggler:  
 
Ты это, не ругайся - за такое  14.11.2010 в 02:46:10, Dirk_Diggler писал(a):
да блин хоть полином Чебышева с 2мя членами
могут и это... Диплом отнять...  
 
Этот   T_2(x) = 2x^2 - 1,  или этот   T_3(x) = 4x^3 - 3x ? Или они же, но второго рода?
 
И куда его? И зачем?!
 
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Наука и религия в исходниках НО.
« Ответ #6 от 14.11.2010 в 03:01:59 »

Его - как функцию, интерполирующую штраф к попаданию на отрезке от 0 до 1. Например. да необязательно чебышевскими, можно любым другим. Суть - просто интерполировать некую "реальную" зависимость.
« Изменён в : 14.11.2010 в 03:03:52 пользователем: Dirk_Diggler » Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Наука и религия в исходниках НО.
« Ответ #7 от 14.11.2010 в 03:02:27 »

Так в чем суть предложения считать эллипс?
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #8 от 13.11.2010 в 20:15:32 »

Никто не замечал, что меткость очередей падает с выстрелами просто катастрофически? Я тут формулу посмотрел...
Стрелять стоя и даже сидя очередями длинней чем 2-3 выстрела из большинства оружия просто нет смысла. Последние же выстрелы из очереди в 10 патронов почти 100% уйдут в молоко - падение точности линейное. Может, сделать падение точности хотя бы по квадратному корню?
Зарегистрирован

jz
[жыз:)]


Я люблю этот Форум!




Пол:
Репутация: +318
Re: Клуб "Ночные операции" - 4
« Ответ #9 от 13.11.2010 в 20:45:06 »

2Dirk_Diggler: Обычно в выходные здесь разработчики не появляются.  
 
Вот надергал из Weapons.c по поводу очереди. Предлагаю править прямо в коде, так Богам проще потом смотреть.
 
Code:

      // If in burst mode, deduct points for change to hit for each shot after the first
      if ( pSoldier->bDoBurst )
      {
            //***17.10.2007*** Смещённый импульс отдачи, пулемёты и техника
            if( (Weapon[usInHand].ubWeaponType == GUN_LMG && ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight == ANIM_PRONE || gAnimControl[ pSoldier->usAnimState ].ubEndHeight == ANIM_CROUCH && FindSupport(pSoldier) ))
                  || TANK(pSoldier) || AM_A_ROBOT(pSoldier) )
                  iPenalty = pSoldier->bDoBurst - WeaponExt[usInHand].ubBurstHitStart;
            else
                  iPenalty = Weapon[usInHand].ubBurstPenalty * (pSoldier->bDoBurst - WeaponExt[usInHand].ubBurstHitStart);
            
            if(iPenalty > 0)
            {
                  if ( HAS_SKILL_TRAIT( pSoldier, AUTO_WEAPS ) )
                  {
                        iPenalty /= 2 * NUM_SKILL_TRAITS( pSoldier, AUTO_WEAPS );
                  }
                  iChance -= iPenalty;
            }
      }
« Изменён в : 13.11.2010 в 21:14:22 пользователем: jz » Зарегистрирован

jz
[жыз:)]


Я люблю этот Форум!




Пол:
Репутация: +318
Re: Клуб "Ночные операции" - 4
« Ответ #10 от 13.11.2010 в 21:04:11 »

Quote:
BurstPenalty - штраф на каждый выстрел в очереди.
BurstHitStart - выстрел в очереди, после которого начинает влиять BurstPenalty

Для техники, пулеметчиков лежа/сидя с опорой bDoBurst - BurstHitStart
Остальные BurstPenalty * (bDoBurst - BurstHitStart)
Как видно из отрывка, от выстрелов меняется величина bDoBurst. Остальные - постоянны.  
 
Теперь ищем, как меняется bDoBurst:
Code:

      if ( pSoldier->bDoBurst )
      {
            // done, if bursting, increment
            pSoldier->bDoBurst++;
      }
Если я правильно понял, то это просто счетчик с шагом 1 (считает пули).
 
Расчёт для АК-74:
BurstPenalty = 7
BurstHitStart = 1
1: 7 * (1 - 1) = 0
2: 7 * (2 - 1) = 7
3: 7 * (3 - 1) = 14
4: 7 * (4 - 1) = 21
5: 7 * (5 - 1) = 28
6: 7 * (6 - 1) = 35
7: 7 * (7 - 1) = 42
8: 7 * (8 - 1) = 49
9: 7 * (9 - 1) = 56
10: 7 * (10 - 1) = 63
« Изменён в : 13.11.2010 в 21:12:58 пользователем: jz » Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #11 от 13.11.2010 в 21:34:12 »

во-во. Не стрелял из АК, но думается мне, что там даже со 2-3го патрона вероятность попадания одинаковая примерно. а тут разница между 3 и 10м - заоблачная.
Зарегистрирован

Терапевт
[Кулибин]
Кардинал


Народный целитель. Шарлатан высшей категории.




Пол:
Репутация: +1187
Re: Клуб "Ночные операции" - 4
« Ответ #12 от 13.11.2010 в 21:37:52 »

13.11.2010 в 21:34:12, Dirk_Diggler писал(a):
Не стрелял из АК, но думается мне, что там даже со 2-3го патрона вероятность попадания одинаковая примерно

При стрельбе из неустойчивых положений - да, для попадания в щит 2 на 2 метра со 100 метров.
Зарегистрирован

Весна! Я уже не грею пиво! (с) В.Цой
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #13 от 13.11.2010 в 21:43:17 »

13.11.2010 в 21:37:52, Терапевт писал(a):
При стрельбе из неустойчивых положений - да, для попадания в щит 2 на 2 метра со 100 метров.  

Да и в цель тоже. Могу спросить у знакомых вояк, но насколько я косвенно знаю, уже второй выстрел идет резко мимо цели. Как и все последующие. Т.е меткость падает мгновенно, и дальше колеблется у одного уровня. Если это не слабак/женщина, у которого ствол улетает в небо. У никонова, соот-но, такое происходит начиная с 3й пули...
« Изменён в : 13.11.2010 в 21:47:44 пользователем: Dirk_Diggler » Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #14 от 13.11.2010 в 21:52:04 »

вот и предлагаю, сделать, скажем, по корню.
2: 7 * sqrt(2 - 1) = 7
3: 7 * sqrt (3 - 1) = 9
 
5: 7 * sqrt (5 - 1) = 14
 
10: 7 * sqrt (10 - 1) = 21  
 
Т.е. стандартное отклонение для всех выстрелы со штрафом - будет меньше. Если штраф кажется маленьким - увеличить BurstPenalty.
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #15 от 13.11.2010 в 22:00:22 »

2Dirk_Diggler:  
 
АК - да, без привычки к правильному удержанию - ствол идет вверх-влево... Уже вторая пуля - в молоко. У АКМ - есть компенсатор, увод вверх заметно меньше, но все равно есть. Кучности, особенно вертикальной - никакой, если не привыкнуть.
 
У АН - совершенно иная схема, и кучность чуть ли не на порядок выше. Его практически "не ведет", все зависит от стрелка...
 
Модель поведения ствола в руках стрелка - весьма непроста, и ее лучше вообще не трогать.  
 
По идее, для игры следует просто визуально оценивать "эллипс рассеивания" по  макс. углу между пулями в очереди. Так, на десяти клетках рассеивание в три (3) фигуры - дост. реально. Это даст 5 фигур на 20 тайлах, 7 - на 30, и 9 - на 40. Вполне похоже. Такая аппроксимация допустима из допущения о малости углов.
 
Видимо, тут просятся коэффициенты для типа патрона, дальности стрельбы ствола, и т.п.
 
Т.е., если сейчас веер рассеивания в НО сузить раза в два, то будет песня!!!
« Изменён в : 13.11.2010 в 22:04:09 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #16 от 13.11.2010 в 22:01:18 »

и еще одно предложение. т.к. параметры стрельбы очередями у стволов очень разные, и в игре они не показываются, и лазить в TTX.TXT нет никакого желания/удовольствия, то: в случае очереди показывать у курсора вероятность попадания лишь первой пули(а показывается именно она) - нелогично. имхо, логично показывать там математическое ожидание кол-ва попаданий или вероятность попадания хотя бы одной пули. По вероятности только первой пули сложно принять решение о длине очереди...  : rolleyes :
« Изменён в : 13.11.2010 в 22:28:02 пользователем: Dirk_Diggler » Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #17 от 13.11.2010 в 22:02:34 »

13.11.2010 в 22:00:22, Bonarienz писал(a):
По идее, для игры следует просто визуально оценивать "эллипс рассеивания" по  макс. углу между пулями в очереди. Так, на десяти клетках рассеивание в три (3) фигуры - дост. реально. Это даст 5 фигур на 20 тайлах, 7 - на 30, и 9 - на 40.

в формуле не участвуют тайлы, только длина очереди. вообще, завязка на тайлы выглядит более логичной, но ЗНАЧИТЕЛЬНО сложнее реализуемой. поэтому я об этом даже и не заикаюсь.
« Изменён в : 13.11.2010 в 22:03:47 пользователем: Dirk_Diggler » Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #18 от 13.11.2010 в 22:07:46 »

13.11.2010 в 22:00:22, Bonarienz писал(a):
АК - да, без привычки к правильному удержанию - ствол идет вверх-влево... Уже вторая пуля - в молоко. У АКМ - есть компенсатор, увод вверх заметно меньше, но все равно есть. Кучности, особенно вертикальной - никакой, если не привыкнуть.
 
У АН - совершенно иная схема, и кучность чуть ли не на порядок выше. Его практически "не ведет", все зависит от стрелка...  

в случае нелинейной зависимости(логарифмич. или по корню) - все эти проблемы прекрасно решаются разным BurstPenalty.
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #19 от 13.11.2010 в 22:19:01 »

2Dirk_Diggler:  
 
В движке везде есть привязка к системе координат, хотя она часто - неявная.
 
О тайлах и фигурах говорится в смысле углов рассеивания. Вышеприведенные цифры соответствуют стволам класса ПП и АКСУ.  
Можно прикинуть и углы, и тангенсы этих углов именно по "прикидке к местности".
 
Как вариант, считать рассеивание по основанию в три фигуры, НО с высотой, равной дальнобойности ствола,  с учетом влияния параметра Deadlyness. Типа, чем круче, тем точнее.
 
Так, размер тайла - 1 игровой метр, фигура - 50...60 см шириной. Фигуры стоят в центрах тайлов. Имеем равносторонний треугольник с высотой 10 метров, и 2 полустороны в основании длиной 1м (расст. между центрами тайлов) + 30 см (полуширина фигуры). Вот, имеем тангенс полуугла рассеивания, равный 13/100.
Имеем угол рассеивания (мелкодрянь куркулятырь) atan (13/100) * 2 = 14,8 град. им. алидады... Вполне разумная, похожая на правду цифра...
 
Так что - возможно все, было бы время, желание, знания...
« Изменён в : 13.11.2010 в 22:22:21 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #20 от 13.11.2010 в 22:29:05 »

2Dirk_Diggler:  
 
Математика стрельбы весьма сложна. Там не зря эллипс рассеивания! Не стоит в это лезть, особенно по корням логарифмов  :P. В ТФКП тангенс - тот же логарифм.
 
Просчет любой "чистой" функции в игре - бессмысл. трата времени и ресурсов. Все надо делать линейными операциями, да еще и с целыми числами, в идеале.
Cf. atan (4/7) соответствует 30 град. с точностью до 4-ого знака.
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #21 от 13.11.2010 в 22:33:30 »

Ну допустим у нас будет эллипс. Что дальше? А дальше просто - оценка вероятности попадания. Соот-но, если эллипс - есть функция от переменных а1,...,aN, то вероятность попадания - аналогично будет функцией от них же. опять таки, задача сведется к её интерполированию. Ну либо точному выводу, для тру-фанов реализма )))
Просто, я веду к тому, что линейное приближение - имеет смысл заменить на более точное нелинейное.  
 
Я не понял, ты ратуешь за более точное приближение или за то, чтобы не трогать линейную зависимость?
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #22 от 13.11.2010 в 22:37:12 »

13.11.2010 в 22:29:05, Bonarienz писал(a):
трата времени и ресурсов. Все надо делать линейными операциями, да еще и с целыми числами, в идеале.  

Для корней и логарифмов - можно просчитать матрицу, скажем, 255х255, при старте игры, и брать значения оттуда. Вам же не жалко 254 кбайта ОЗУ?  ;) ;D
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #23 от 13.11.2010 в 22:40:27 »

2Dirk_Diggler:  
 
Я ратую за тангенс, приявязанный к системе координат игры!!! И оптимум из реалистичности и простоты-скорости обсчета.
 
 А тангенс - сугубо нелинейная функция...
 
Если привязать точки попадания к дискретам жсд в тайле, или разбить тайл еще к.-л. сеткой(!), то можно тупо и линейно считать рассеивание по линии, перепендикулярной директрисе. Сразу же появляется твоя жаждаемая нелинейность для стрелка!
« Изменён в : 13.11.2010 в 22:46:12 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #24 от 13.11.2010 в 22:45:52 »

Вот, тут пишут:
http://bratishka.ru/archiv/2010/2/2010_2_8.php
Quote:
При определении вероятности поражения целей автоматическим огнем по формуле, указанной выше, получаются завышенные результаты (на 3–7%).

Это сказано про расчет по формуле, когда вероятность промаха постоянна для каждого выстрела.  
 
Делать вероятностные выкладки(невооруженным глазом видно, что при линейной зависимости разница будет ГОРАЗДО больше 7%) или по этому вопросу позиция принципиальная, и обсуждать смысла нет?
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #25 от 13.11.2010 в 22:48:21 »

13.11.2010 в 22:40:27, Bonarienz писал(a):
2Dirk_Diggler:  
 
Я ратую за тангенс, приявязанный к системе координат игры!!! И оптимум из реалистичности и простоты-скорости обсчета.
 
 А тангенс - сугубо нелинейная функция...  

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

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #26 от 13.11.2010 в 22:55:48 »

2Dirk_Diggler:  
 
"Ф этай стате - многа букаф, а моск - малиньки! Ниасилил!"  
 
Просто учился по учебникам гр-ки Вентцель, непререкаемого авторитета в области теории стрельб. Поэтому - лень читать популяризаторофф.
 
Любое классическое распределение в дискретных пространствах легко аппроксимируется прямыми (а кривыми - и не может). Причем вырожденный случай - равномерное распределение, т.е. одна прямая.
 
В нашем случае можно сделать т.н. призматическое - треуг. с ненулевым основан.), или более сложное, но ломаное из прямых. Тогда таблица коэфф. займет не 256 кБайт, а 11...64 слова.
 
От вышеуказанного легко впасть в мечты!!! Под каждый ствол - своя таблица рассеивания, макс. приближенная к реалу, но в дискретных коорд. ДжА.
 
Пришел этот - он тоже по Вентцель учился - и нас понесло... Раскрыв угла рассеивания определяется опытом стрелка, начальный угол ошибки прицеливания (!) - меткостью и (меньше) ловкостью. Ну, и далее опять расписывается модель с 20-ю нелинейными параметрами... : beer :
« Изменён в : 13.11.2010 в 23:01:59 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #27 от 13.11.2010 в 23:03:50 »

2Dirk_Diggler:  
 
Не замыкайся на эллипсе! Ну не стОит вводить непр. функции в чисто дискретное пр-во!
 
Вот смотри - берем базовым "куском" вертикальную плоскость, с длиной основания в 3 тайла, и проходящую через центры этих тайлов. Высота плоскости - 2 верт. тайла.  
 
Если считать в дискретах жсд, то плоскость имеет 15 гориз. и 8 верт. дискретов (4 + 4). Для полноты счастья убираем сверху 1 дискрет.  
 
Получаем 15х7 дискретов, причем центр нашей сетки - точка прицеливания. Вот и раздавай вероятности...
 
В таком виде новобранец, стреляющий в голову врага, стоящего на земле, может попасть в торс другого, стоящего на крыше!  
 
Ужели мало?
« Изменён в : 13.11.2010 в 23:14:21 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #28 от 13.11.2010 в 23:14:31 »

13.11.2010 в 22:55:48, Bonarienz писал(a):
Любое классическое распределение в дискретных пространствах легко аппроксимируется прямыми (а кривыми - и не может).  

Однако. И это повод оставить линейную зависимость? :o
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #29 от 13.11.2010 в 23:16:09 »

13.11.2010 в 23:03:50, Bonarienz писал(a):
Ужели мало?  

Вот именно. Зачем эллипс-то приплетать? Достаточно-то одной нелинейной функции.
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #30 от 13.11.2010 в 23:17:18 »

13.11.2010 в 22:55:48, Bonarienz писал(a):
Любое классическое распределение в дискретных пространствах легко аппроксимируется прямыми (а кривыми - и не может).

Чего???
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #31 от 13.11.2010 в 23:22:32 »

2Dirk_Diggler:  
 
Ну, эллипс-та, эта, линейнай, канешна, да!
 
Нравится нелинейная - вставляй! Только как и куда? А главное - зачем?
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #32 от 13.11.2010 в 23:23:30 »

13.11.2010 в 23:17:18, Dirk_Diggler писал(a):
Чего???

 
Того, того!!!
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #33 от 13.11.2010 в 23:37:34 »

13.11.2010 в 23:22:32, Bonarienz писал(a):

Нравится нелинейная - вставляй! Только как и куда? А главное - зачем?  

Чтобы а) сделать очередь вещью более логичной. б) чтобы её имело смысл использовать. Сделали же возможность выпускать 12 патронов за раз, "а главное - зачем?" (ц) если после 4-6 патрона всё летит в молоко?  
 
 13.11.2010 в 23:23:30, Bonarienz писал(a):
 
Того, того!!!  
 
Чего "того"? что значит "Любое классическое распределение в дискретных пространствах легко аппроксимируется прямыми (а кривыми - и не может). "
Точки отрезочками соединил - это типа "аппроксимация в дискретном пространстве" ? Я теорию стрельбы не изучал, но с мат. аппаратом у меня всё в порядке. Чего это кривыми не может? Приближение кривыми оно завсегда точнее.
« Изменён в : 13.11.2010 в 23:38:37 пользователем: Dirk_Diggler » Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #34 от 13.11.2010 в 23:47:19 »

2Dirk_Diggler:  
 
У меня тож с МАТ-аппаратом все намана! Так обложу, этажей в 7, с падежными окончаниями!!!
 
Эт распр. ошибка -  13.11.2010 в 23:37:34, Dirk_Diggler писал(a):
Чего это кривыми не может? Приближение кривыми оно завсегда точнее.  
- а если пр-во всего из 3 или 5 точек состоит!?
 
Задача не в том, у кого, что и насколько куда! Задача - в конкретной, простой, быстро считающейся и ЖИВОПИСНОЙ на экране ДжА автоматической стрельбе! Вот!
« Изменён в : 13.11.2010 в 23:49:44 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Legend
[Переводчик]
Прирожденный Джаец

надА


Ё-мэйл

Пол:
Репутация: +864
Re: Клуб "Ночные операции" - 4
« Ответ #35 от 14.11.2010 в 00:14:08 »

2Dirk_Diggler: 2Bonarienz: Ппц, флудеры-оверпостеры, у меня от вас мозг кипит! :o : insane : Шли бы вы.. к некромантам =) А то ща весь народ распугаете, кто осмелится про клюшки Дейдраны спросить?
« Изменён в : 14.11.2010 в 00:15:35 пользователем: Legend » Зарегистрирован

- Удельный вес ядра твоей планеты думай!
- Эээ...

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #36 от 14.11.2010 в 00:30:13 »

13.11.2010 в 23:47:19, Bonarienz писал(a):
а если пр-во всего из 3 или 5 точек состоит!?  
 
Пространство не может состоять из 3(и даже 5) точек ))))  
 
В любом случае, аппроксимацию полиномами затем и придумали, что отрезки не удовлетворяют по точности. Опять же, отрезки соединяют точки некоторые точки, и приближение - есть набор отрезков. В нашем же случае - кривая ОДНА на все случаи жизни.  
 
13.11.2010 в 23:47:19, Bonarienz писал(a):
Задача - в конкретной, простой, быстро считающейся и ЖИВОПИСНОЙ на экране ДжА автоматической стрельбе! Вот!

Не вижу, чем нелинейная зависимость не удовлетворяет этому критерию. )  
 
14.11.2010 в 00:14:08, Legend писал(a):
2Dirk_Diggler: 2Bonarienz: Ппц, флудеры-оверпостеры, у меня от вас мозг кипит! :o : insane : Шли бы вы.. к некромантам =)  

А ты вот выскажись, ты за линейное возрастание штрафа с каждым выстрелом в очереди, или за нелинейное? )
Зарегистрирован

Legend
[Переводчик]
Прирожденный Джаец

надА


Ё-мэйл

Пол:
Репутация: +864
Re: Клуб "Ночные операции" - 4
« Ответ #37 от 14.11.2010 в 00:36:46 »

2Dirk_Diggler: Я за реалистичное возрастание штрафа с каждым выстрелом. Т.е. если один ствол кучнее другого, это должно быть смоделировано, причём как можно точно, а не "ну, скажем, здесь пусть два очка будет, а здесь пять, он же не очень кучный". Понимаю, сложно, но мне плевать, ибо здесь я хомячёк-конечный-потребитель ;D
Зарегистрирован

- Удельный вес ядра твоей планеты думай!
- Эээ...

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #38 от 14.11.2010 в 00:41:23 »

14.11.2010 в 00:36:46, Legend писал(a):
Я за реалистичное возрастание штрафа с каждым выстрелом. Т.е. если один ствол кучнее другого, это должно быть смоделировано, причём как можно точно

Вооот! Возвращаемся-таки к нелинейной модели. )
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #39 от 14.11.2010 в 00:58:22 »

2Dirk_Diggler:  
Вообще-то это полу-дойч прав... Такие темы надо в "копателях" разбирать... А здесь - все "потереть"... Пока Белорусы с ножницами моторизованными не пришли...
 
Открывай ветку в "копателях"!
« Изменён в : 14.11.2010 в 00:58:58 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Legend
[Переводчик]
Прирожденный Джаец

надА


Ё-мэйл

Пол:
Репутация: +864
Re: Клуб "Ночные операции" - 4
« Ответ #40 от 14.11.2010 в 01:08:24 »

2Bonarienz: Достаточно туда перенести ;) Что модераторы наверняка и сделают :D : pray :
Зарегистрирован

- Удельный вес ядра твоей планеты думай!
- Эээ...

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #41 от 14.11.2010 в 02:20:37 »

14.11.2010 в 00:36:46, Legend писал(a):
это должно быть смоделировано, причём как можно точно, а не "ну, скажем, здесь пусть два очка будет, а здесь пять, он же не очень кучный".

А как ты точность определишь, ты же не стрелял из всей этой ботвы?  
 
А вообще, меня вот еще расстраивает бедность описания стволов, где минусы/плюсы. Там бы еще писать "кучный", "большая отдача", "громкий" и т.п. ))))
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #42 от 14.11.2010 в 02:23:53 »

2Dirk_Diggler:  
 
Ветку открыл, прямо тут, в НО... А по описаниям - напиши или отредактируй! Либо ПМ вставит в игру, либо самого тебя обучим.
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #43 от 14.11.2010 в 02:26:10 »

не люблю напрягаться впустую. Пока молчание мне ответом. так что только намечаю цели ) Будет одобрение/поддержка оццов-аснавателей - глядишь, и сделаю )
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #44 от 14.11.2010 в 02:29:22 »

2Dirk_Diggler:  
 
Перетоптать новые описания может Сам - Терапевт, может Сам - ПМ... Ну, и еще пяток товарищей...
 
Так что кидай предложения, но с конкретными текстами - и усё...
« Изменён в : 14.11.2010 в 02:30:09 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #45 от 14.11.2010 в 02:35:32 »

14.11.2010 в 02:29:22, Bonarienz писал(a):
Перетоптать новые описания может Сам - Терапевт, может Сам - ПМ... Ну, и еще пяток товарищей...
 
Так что кидай предложения, но с конкретными текстами - и усё...

Чтобы быть конкретным, надо найти то место в коде, где эти надписи выводятся. И оценить возможность расширения.  
Кстати, если я не ошибаюсь, уже не ко всем стволам эти строки влазят - надо учитывать длину....
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #46 от 14.11.2010 в 02:47:13 »

2Dirk_Diggler:  
 
Кажися, все влазит (так!). Там хитрость есть. Тексты спроворь, а кому воткнуть - найдутся.
 
Если что - на русский с падежами переведем - на 30...50% короче будет.
« Изменён в : 14.11.2010 в 02:48:08 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #47 от 14.11.2010 в 03:17:44 »


 
2Dirk_Diggler:  
Мы имеем четкое понимание того, как летят пули из ствола, с учетом параметров как оружия, так и стрелка!
 
Строим индексированный массив, размеры которого как раз и определяются этой парой наборов параметров.
 
Получаем N вариантов попадания, запускаем "рэндом", стреляем. С учетом конкретного ствола корректируем положение "желтого шарика", пускаем "рэндом", стреляем...  
 
И кто скажет, что это не эллипсоид - в дискретном пространстве?
      
 
Напугался - а это наш треп перенесли! спасибо, Великие!
« Изменён в : 14.11.2010 в 03:18:33 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #48 от 14.11.2010 в 03:20:23 »

14.11.2010 в 03:17:44, Bonarienz писал(a):
Строим индексированный массив
 
Какой массив? ЧТо он будет содержать, и какие индексы использоваться?
 
14.11.2010 в 03:17:44, Bonarienz писал(a):
С учетом конкретного ствола корректируем положение "желтого шарика", пускаем "рэндом", стреляем...    

Т.е. к 4-5 выстрелу можем и за спину себе выстрелить? Я ведь правильно понял, что после коррекции положения, эллипсоид надо выстроить еще раз вокруг желтого шарика и опять рандомом выстрелить в него?
« Изменён в : 14.11.2010 в 03:21:27 пользователем: Dirk_Diggler » Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #49 от 14.11.2010 в 03:22:29 »

14.11.2010 в 03:17:44, Bonarienz писал(a):
С учетом конкретного ствола корректируем положение "желтого шарика", пускаем "рэндом", стреляем...    

В этом случае проще использовать Байесовскую вероятность. Ствол хотя бы ОЧЕНЬ далеко не будет выносить от цели, а то мы так попадем хз вообще куда. Имхо. А вообще, я уже накопил возражения. Щаз, проясню неясные места в "Эллипсоидной модели" - и выложу.
« Изменён в : 14.11.2010 в 03:24:15 пользователем: Dirk_Diggler » Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #50 от 12.11.2010 в 22:01:37 »

2jz:  
 
Вообще-то, Dirk_Diggler - отчасти - прав! После захвата наемниками секторов, в которых формируются каратели, кол-во последних должно бы снижаться, и увеличиваться срок подготовки - с ростом, тсз, квалификации карателей. Т.е. вместо 4 мест с "дебитом в 20 зеленых" оставшиеся, напр., 2 выдают по 10 "очень злых" серых...
« Изменён в : 12.11.2010 в 22:01:56 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #51 от 12.11.2010 в 22:57:34 »

12.11.2010 в 22:01:37, Bonarienz писал(a):
Т.е. вместо 4 мест с "дебитом в 20 зеленых" оставшиеся, напр., 2 выдают по 10 "очень злых" серых...  

Хе-хе... Значит, не один я так думаю. Да, меньшее количество боев, но более сложных - было бы в плюс. Сейчас же просто приходится устраивать тир и мясо, используя слабые места AI, и мотаться из сектора в сектор "змейкой". Ибо (на текущий момент) подвиг по ночной зачистке сектора, в котором 50 фрагов, что я провел недавно, например, почти не имеет смысла - их очень скоро станет столько же. Что и надоедает...
Зарегистрирован

jz
[жыз:)]


Я люблю этот Форум!




Пол:
Репутация: +318
Re: Глюки и проблемы - 2
« Ответ #52 от 13.11.2010 в 00:04:14 »

12.11.2010 в 22:57:34, Dirk_Diggler писал(a):
Да, меньшее количество боев, но более сложных - было бы в плюс.
: up :
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #53 от 13.11.2010 в 00:09:52 »

10.11.2010 в 13:31:48, Legend писал(a):
2Dirk_Diggler: Достаточно давно уже есть эта фишка. Очень порадовала. Ещё фраги любят ложиться после промаха.  

Это вот этот отрезок работает, со строки 2114, в процедуре DecideActionRed из DecideAction.c:  
 
Code:

                   //////////////////////////////////////////////////////////////////////// ////
                   // UNDER FIRE, DON'T WANNA/CAN'T RUN AWAY, SO CROUCH
                   //////////////////////////////////////////////////////////////////////// ////

 
Там просто алгоритм такой: есть флаги оценки ситуаций, красный - это очевидно враг рядом, сюда как раз относится когда попали, но не видно откуда.
 
Тогда выбор действия идет так:  
0) обработка нескольких редких ситуаций
1) Если в газе  
1.1) Если не в противогазе, то его одеть
1.2) Утечь из зоны загазовки
2) Если уровень опасности не "черный"(врага не видно), и фраг не считает себя под атакой - перевязать раны
3) Если фраг ночью в освещенном месте, и нет приказа стоять на месте, и если фрага там видят мерки - утечь из освещенного места.
4) Если есть наводка по радио(если мерков видят другие фраги) - стрельнуть туда из дальнобойного оружия
5) Если энергии меньше 25, фраг не плывет и не под огнем - присесть отдохнуть
6) Если у фрага маленькая мораль - убегать подальше от всех мерков
7) Если у фрага AP хватает на вызов по рации, и есть другие фраги в секторе:
7.1) Если случайное число меньше вычисленного параметра и фраг не плывет - передать по рации красный сигнал тревоги
8) Если это гражданский или фраг под огнем, не робот:  
8.1) Если величина шока >0 или это гражданский - выбираем точку подальше от мерков, и если она отличается от текущей позиции - утекаем к ней
8.2) Если не гражданский
8.2.1) Если стоим в полный рост и можно присесть, и хватает AP - приседаем.
8.2.2) Если не лежим, то можем и лечь(шанс 1 из 3х).  

9) Если еще есть AP(больше резерва) и это фраг,  
9.1).... в зависимости от морали, приказов и характера самого фрага меняются параметры поведения - помогать, искать врага или прятаться. Причем в реалтайме фраги никогда не прячутся.
и т.д.
....
10)  
 
т.е. ложимся просто "а почему бы нет". Понятно, что после того, как ляжем - алгоритм проскакивает дальше. В конце алгоритма еще один раз фраг может лечь - когда уже совсем нечего больше делать, но это не тот фрагмент, потому что там он после того как уляжется, сразу завершает ход.
 
Непонятно, почему фраг не утекает, когда подстрелен, на шаге 8.1. Похоже, это величина шока =0. Пуля выбила мало здоровья или вообще не выбила. Дальше округление вниз. В строке 6859 файла Soldier Control.c:
Code:

ubCombinedLoss = (UINT8) sLifeDeduct / 10 + sBreathLoss / 2000;
 
      // Add shock
      if ( !AM_A_ROBOT( pSoldier ) )
      {
            pSoldier->bShock += ubCombinedLoss;
      }

 
Может, поменять её мальца? Чтобы при ненулевом ubCombinedLoss получался ненулевой шок. Ну не может быть, чтобы пуля попала, но вообще никакого влияния не оказала. Да будь ты в тройном бронике.
Иои проверку на шок убрать - ведь тикать из под огня надо даже если в тебя еще не попали. Или вместо участка, где предписывается лечь, вставить участок с пометкой Code:
//***12.11.2009*** AI уход из под наблюдения игрока

 
 
« Изменён в : 13.11.2010 в 14:28:42 пользователем: Dirk_Diggler » Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #54 от 13.11.2010 в 03:56:08 »

Вообще, если это кому-то надо, могу при свободном времени помогать алгоритмами для AI. Писать на сях я не умею, плюс надо точно помнить всю структуру переменных, а вот алгоритмы - могу накидывать. Достаточно подробные.
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #55 от 13.11.2010 в 14:20:38 »

13.11.2010 в 00:04:14, jz писал(a):
12.11.2010 в 13:57:34, Dirk_Diggler писал(a):
Да, меньшее количество боев, но более сложных - было бы в плюс.
: up :

 
Да, тут с AI надо работать. Могу предложить посильную помощь )))) Если Терапевту и команде интересно, конечно.  
 
А еще, а еще, а еще можно было бы некоторую тактику на стратег. карту внести. А точнее - немного поменять механизм генерации отрядов. Как известно, при захвате шахты игрок получает некоторое количество золота от неё в день, которое равно некоторому параметру, (назовем который доходность) умноженному на лояльность.  
 
Предлагаю.
 
Сделать генерацию отрядов - платной для Дейдраны. Оценить каждый вид солдатов(а в идеале - и их амуницию) - в какую-то денежку. Элиту дороже, зеленых - дешевле. При генерации - деньги отнимать из казны. Казну пополнять из шахт по тому же алгоритму - Дейдрана получает бабло в день, равное сумме доходов со всех шахт. Доход дейдраны с шахты равен полному доходу от шахты минус доход игрока. Т.е. если шахта альмы не захвачена игроком - 100% дохода в казну. Если захвачена и лояльность 73%, то Дейдрана будет получать с неё 27%. Чем дальше, тем делать элиту дешевле по чуть-чуть, а салабонов - дороже. Так генерируемые отряды будут более сильными.
Естественно, ей надо оставить какой-то минимальный гарантированный доход, чтобы она совсем без войск не осталась )
Зарегистрирован

Airbus
[Арбуз]
Прирожденный Джаец

Я люблю этот Форум!




Пол:
Репутация: +125
Re: Глюки и проблемы - 2
« Ответ #56 от 13.11.2010 в 21:27:35 »

13.11.2010 в 14:20:38, Dirk_Diggler писал(a):
Если захвачена и лояльность 73%, то Дейдрана будет получать с неё 27%.
А денюжку Дейдрана почтовым переводом получать будет? Врядли в освобожденном городе будут рады инкассаторам. ;)
 
Но идея интересная. Дейдрана же говорит при захвате последней шахты, дескать, как она будет без денег сохранять власть. Значит вот это правильно: 13.11.2010 в 14:20:38, Dirk_Diggler писал(a):
При генерации - деньги отнимать из казны. Казну пополнять из шахт по тому же алгоритму - Дейдрана получает бабло в день, равное сумме доходов со всех [захваченных ей] шахт.
« Изменён в : 13.11.2010 в 21:28:34 пользователем: Round Owl » Зарегистрирован

"Now I am become Death, the destroyer of squirrels"
Уникальная методика лечения авиафобии!

Терапевт
[Кулибин]
Кардинал


Народный целитель. Шарлатан высшей категории.




Пол:
Репутация: +1187
Re: Глюки и проблемы - 2
« Ответ #57 от 13.11.2010 в 21:29:19 »

13.11.2010 в 03:56:08, Dirk_Diggler писал(a):
могу при свободном времени помогать алгоритмами для AI

Алгоритмы ИИ (и прочие советы по модификации кода) интересны только тогда, когда основаны на проверенных фактах, а не на предположениях, сформировавшихся только лишь при разглядывании кода.
Прежде чем озвучивать свои предположения по работе фрагментов кода, попробуй их проверять с помощью отладчика, узнаешь много интересного. ;)
Зарегистрирован

Весна! Я уже не грею пиво! (с) В.Цой
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #58 от 13.11.2010 в 21:30:48 »

13.11.2010 в 21:27:35, Airbus писал(a):
А денюжку Дейдрана почтовым переводом получать будет? Врядли в освобожденном городе будут рады инкассаторам. ;)  

Нелогично, согласен, но так игрок будет более заинтересован в лояльности, плюс - не будет такого существенного облегчения игрового процесса. а то драньке не хватит бабосов, и ога.
 
Вообще, там по стратегическому AI -  поле непаханное. С удовольствием бы помог. Излил посильно (ц) дмб ))))
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #59 от 13.11.2010 в 21:38:27 »

13.11.2010 в 21:29:19, Терапевт писал(a):
Алгоритмы ИИ (и прочие советы по модификации кода) интересны только тогда, когда основаны на проверенных фактах, а не на предположениях, сформировавшихся только лишь при разглядывании кода.  

практическая проверка чревата тем, что я вместо работы с алгоритмами все время трачу на проверку. То бишь играю ))))))  
Есть такая мысль.
Я бы компилил экзешники для желающих потестить мои предложения ) и выкладывал бы здесь. надо всего 2 вещи.  
а) добро разработчиков мода  
б) желающие потестить  ;)
А потом бы отсылал удачные находки разработчикам.
« Изменён в : 13.11.2010 в 21:45:55 пользователем: Dirk_Diggler » Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #60 от 13.11.2010 в 21:40:51 »

2Airbus:  
 
Инкассаторам - рады не будут, а вот за обещание не трогать самих и семьи при восстановлении власти Дейдранны - сами будут возить! Иначе - найдут способ подстраховаться, сиречь - и рыбку съесть, и на ... сесть...
 
Homo homeni lupus est.
 
А по существу - так и надо бы сделать. Но это - непросто...
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #61 от 13.11.2010 в 21:45:16 »

13.11.2010 в 21:40:51, Bonarienz писал(a):
А по существу - так и надо бы сделать. Но это - непросто...  

Не берусь утверждать, но рискну предположить. Это - таки несложно. но если такое внедрить, сейвы полетят ) Зато можно без риска для сейвов сделать генерацию отрядов зависимой от дохода Драньки. ) Назначить постоянную цену одному солдату(любому). И всё.
« Изменён в : 13.11.2010 в 21:47:22 пользователем: Dirk_Diggler » Зарегистрирован

jz
[жыз:)]


Я люблю этот Форум!




Пол:
Репутация: +318
Re: Глюки и проблемы - 2
« Ответ #62 от 13.11.2010 в 22:04:29 »

13.11.2010 в 21:29:19, Терапевт писал(a):
Прежде чем озвучивать свои предположения по работе фрагментов кода, попробуй их проверять с помощью отладчика

Есть такой тип тестирования, не помню как называется - берут человека из коридора фирмы/с улицы и включают ему программу. И он часто находит те ошибки, которые не видят "штатные" тестировщики. Просто мы так долго варимся в JA2-мире, что уже сформировали свое мнение какая джага должна быть.  А Dirk_Diggler: смотрит "незамыленным" взглядом, например проверено, что после середины игры все игроки НО бросают игру. И вот он один заметил, что в это время нужно менять динамику боев.
 
2Dirk_Diggler: Сейчас из программистов НО остался один Терапевт. И вполне естественна его реакция на слова "AI никуда не годится". Он этот AI в одиночку менял в течение 2 лет минимум. Как с ребенком нянчился, сидя перед отладчиком сутками. Как это делается: меняется что-то, потом под отладчиком запускается игра и тестируется, тестируется. До шума в голове. Без зарплаты, в одиночку. Зная, что потом на форуме скажут "Херню написал". Кстати, возраст уже у него не юношеский - костры пионерские остыли, и ради славы работать...
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #63 от 13.11.2010 в 22:11:30 »

13.11.2010 в 22:04:29, jz писал(a):
AI никуда не годится
я такого не говорил. и не думал такого. Если от моих первых мессаг такое впечатление - так то не специально. в таком случае, я понимаю его реакцию. Стиль общения такой, пардоньте. : rolleyes : На самом деле, NO - реально второе дыхание для JA2.
 
Да и собсно, тут все понимают, что AI писал не он, 90% это для JA2 родной AI. от целой команды разработчиков. А его доработки - великолепны. Я видел(благодаря глюку с полем зрения), как в реалтайме фраги заходят в тыл, это же праздник какой-то ))) Да и многое-многое другое, реально радует.  
 
Я ж говорю, именно поэтому и энтузиазм проснулся. Когда видно, что это не косметика, а реально меняется сам процесс игры. Ну как не поучаствовать. )
« Изменён в : 13.11.2010 в 22:14:23 пользователем: Dirk_Diggler » Зарегистрирован

jz
[жыз:)]


Я люблю этот Форум!




Пол:
Репутация: +318
Re: Глюки и проблемы - 2
« Ответ #64 от 13.11.2010 в 22:32:21 »

13.11.2010 в 22:11:30, Dirk_Diggler писал(a):
Я ж говорю, именно поэтому и энтузиазм проснулся. Когда видно, что это не косметика, а реально меняется сам процесс игры. Ну как не поучаствовать. )  

: pivo :
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #65 от 13.11.2010 в 23:41:34 »

2Dirk_Diggler:  
 
Обсуждать те вопросы, что ты поднимаешь, надо не в огр. "кнопками" пр-ве форума, а с карандашом и бумагой - даже без нетбука. Это же постановка задач и их решение в общем виде, на уровне алгоритмов! Это надо за столом делать...
 
Если ты в Москве, можно и попробовать...
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #66 от 14.11.2010 в 00:31:00 »

13.11.2010 в 23:41:34, Bonarienz писал(a):
Обсуждать те вопросы, что ты поднимаешь, надо не в огр. "кнопками" пр-ве форума, а с карандашом и бумагой - даже без нетбука.

ну извиняйте, бананьев нема.  
К тому же, до фундаментальных задач, с применением математики типа оптимизационных алгоритмов, можно добраться позднее. существуют же вещи, которые можно подправить десятком-другим строчек кода.
 
 13.11.2010 в 23:41:34, Bonarienz писал(a):
Если ты в Москве,

Я в Китае.
« Изменён в : 14.11.2010 в 00:33:03 пользователем: Dirk_Diggler » Зарегистрирован

Legend
[Переводчик]
Прирожденный Джаец

надА


Ё-мэйл

Пол:
Репутация: +864
Re: Глюки и проблемы - 2
« Ответ #67 от 14.11.2010 в 00:37:37 »

2Dirk_Diggler: Quote:
Я в Китае.
Ты это серьёзно?
Зарегистрирован

- Удельный вес ядра твоей планеты думай!
- Эээ...

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #68 от 14.11.2010 в 00:38:23 »

2Dirk_Diggler:  
Ну вот те раз! Ниньхао!
 
Еще раз почитали - вопросик-то - сложный, параметров много. Таблицы 3-хмерные нужны...
« Изменён в : 14.11.2010 в 00:44:55 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #69 от 14.11.2010 в 00:42:09 »

14.11.2010 в 00:37:37, Legend писал(a):
Ты это серьёзно?  

Абсолютно.
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #70 от 14.11.2010 в 00:47:08 »

2Dirk_Diggler:  
 
Тогда можно абсолютно серьезно! Так!
 
Попробую картинко спроворить...
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Legend
[Переводчик]
Прирожденный Джаец

надА


Ё-мэйл

Пол:
Репутация: +864
Re: Глюки и проблемы - 2
« Ответ #71 от 14.11.2010 в 01:09:05 »

2Dirk_Diggler: Понятно.
Зарегистрирован

- Удельный вес ядра твоей планеты думай!
- Эээ...

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #72 от 14.11.2010 в 02:11:48 »

14.11.2010 в 00:38:23, Bonarienz писал(a):
Еще раз почитали - вопросик-то - сложный, параметров много. Таблицы 3-хмерные нужны...  

Параметров, которые есть у ствола на это дело - всего два. Код переписывать, добавляя параметры - мало удовольствия, так что будем исходить из того, что функция P вероятности попадания на выстреле номер N, есть функция P( N ) одной переменной N с двумя параметрами BurstPenalty , BurstHitStart.
 
С номером выстрела более-менее понятно, но как оставшиеся 2 параметра можно использовать?  
Ну не верю я, что чем длиннее очередь, тем более неточно бьет автомат. Если я не ошибаюсь, к концу длинной очереди обычно стрелок кладет пули даже немного точнее(особенно если у него трассирующие)  
 
Пока у меня есть только варианты:  
а) Не менять пока особо формулу расчета шанса, за исключением того, что штраф не прямо пропорционален N, а растет по логарифмическому закону - т.е. скорость увеличения штрафа падает с ростом N
б) штраф в виде вычитаемого заменить на штраф-множитель, но с тем же законом - "рассеивание пуль" при очереди должно быть достаточно постоянным.
 
в) воспринимать BurstHitStart как номер выстрела, когда вероятность промаха больше всего(скажем, у Калашникова - 2, у Никонова 3 или 4), а BurstPenalty - как некую абстрактную "кучность" ствола. Тогда, P( N ) при 0< N < BurstHitStart должен быть очень близок к P (0), в P (BurstHitStart) достигать своего минимум Pmin, а потом мееедленно возрастать. Соот-но, в этой модели BurstPenalty служит для определения собственно Pmin, а также скорости возрастания. Чем боьше BurstPenalty, тем меньше Pmin, и медленней растет точность.
Например. Калаш, пляшет в руках начиная уже со второго выстрела. Соот-но, будет получаться такая примерно картина. Мерк, после всех вычислений, первый выстрел делает с точностью 70%. Далее, т.к. BurstPenalty большой, то точность падает сразу до 20%
P(1) = 70%
P(2) = 20%
P(3) = 21%
P(4) = 21%
P(5) = 22%
...
P(12) = 29%
 
 
А Никонов первые два пускает без отдачи почти, потому максимальный удар в плечо приходится на 3ю пулю, а также - он просто кучней, поэтому точность растет к концу очереди быстрей.
 
P(1) = 70%
P(2) = 68%
P(3) = 30%
P(4) = 31%
P(5) = 32%
...
P(12) = 41%
 
« Изменён в : 14.11.2010 в 02:14:45 пользователем: Dirk_Diggler » Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #73 от 14.11.2010 в 02:27:15 »

2Dirk_Diggler:  
 
Давай в НОвую ветку - тут плохо! Заругают, до штрафа!
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Zed
[SIG edition ;)]
A.I.M.Director

Была такая игра Z


Ё-мэйл

Пол:
Репутация: +532
Re: Глюки и проблемы - 2
« Ответ #74 от 14.11.2010 в 03:29:55 »

Во нафлудили то... ни на секунду отойти нельзя. : moderator :
Зарегистрирован

Кровавый ГБист, душитель свободы.
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #75 от 14.11.2010 в 03:32:20 »

2Dirk_Diggler:  
Абсолютно точно подмечено - просто ратую за истинно дискретный обсчет всего, в идеале при помощи таблиц и таблиц коэффициентов поправок к таблицам!
 
Вероятность того, что автомат в руках 13-летней тюти 5-ый выстрел сделает в зенит - велика. Бывает, девушки его ваще бросают, или он сам из рук рвется...
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #76 от 14.11.2010 в 03:33:11 »

2Zed:  
Огромное спасибо, Товарищ Председатель! вы спасли нас от порицания!
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Airbus
[Арбуз]
Прирожденный Джаец

Я люблю этот Форум!




Пол:
Репутация: +125
Re: Глюки и проблемы - 2
« Ответ #77 от 14.11.2010 в 03:35:36 »

14.11.2010 в 03:20:23, Dirk_Diggler писал(a):
Т.е. к 4-5 выстрелу можем и за спину себе выстрелить?
А по моему, такое развитие событий возможно. Только не у бойца, а у... меня например. ;D Т.е. человека, ни разу не стрелявшего очередью боевыми патронами, и далеко с не спортивным телосложением. Ну и от кучности ствола зависит - с XM1014 или CAWS'а у меня второй выстрел за голову будет, а со Штайра AUG Para - может и удержу.
 
UPD: Bonarienz о том же написал, только быстрее. :)
« Изменён в : 14.11.2010 в 03:36:57 пользователем: Round Owl » Зарегистрирован

"Now I am become Death, the destroyer of squirrels"
Уникальная методика лечения авиафобии!

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #78 от 14.11.2010 в 03:38:10 »

2Airbus:  
 
АУГ - удержишь, а вот Пара - вряд-ли! Затвор тяжелее... Только если за "муде" под стволом держать...
 
АН-94 - точно удержишь! Баланс моментов... Особенно - лежа, и с упора!
« Изменён в : 14.11.2010 в 03:40:43 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #79 от 14.11.2010 в 03:38:45 »

14.11.2010 в 03:35:36, Airbus писал(a):
такое развитие событий возможно

Несомненно. Но тогда - где в этой модели сознательное удержание ствола бойцом?
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #80 от 14.11.2010 в 03:41:24 »

 14.11.2010 в 03:32:20, Bonarienz писал(a):
Абсолютно точно подмечено - просто ратую за истинно дискретный обсчет всего,
Дык какова предлагаема модель просчета-то? Что за массив надо получить в результате???
Т.к. предыдущее сообщение вот к этому:  
Quote:
Т.е. к 4-5 выстрелу можем и за спину себе выстрелить? Я ведь правильно понял, что после коррекции положения, эллипсоид надо выстроить еще раз вокруг желтого шарика и опять рандомом выстрелить в него?
, отпишусь здесь же. Просчет "эллипса" - не имеет смысла в начатом разрезе разговора. Я изначально(и посейчас) имею в виду только просчет шанса попадания. Для него эллипс - излишество. В нем появляется какой-то смысл, если в рассмотрение еще включить последующий полет пули, чтобы сразу ей прописывать куда лететь. Но это уже отдельный разговор, и в коде это реализовано отдельно - сперва просчитывается шанс попал/не попал, а потом все остальное. Я тоже пока говорю о штрафе к шансу попал/не попал. Т.е. я правильно понимаю, Вы предлагаете - переделать алгоритм, увязав просчет шанса сразу же к вылету пули?
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #81 от 14.11.2010 в 03:41:26 »

2Dirk_Diggler:  
Опыт, сила, ловкость...
 
Как раз хотел уточнить - полу-реал будет тогда, когда поведение системы оружие-пуля будет определяться и самим оружием, и стрелком из него!
 
Вот, скажу как лох! Хочу, чтобы веер рассеивания у Ивана 10-ого уровня до 10-й пули в очереди укладывался в 1,2...1,4 торса. Т.е. из 10 пуль на расст. 20 тайлов, из АК-74 как минимум 7 попадали в цель. И чтобы у Айры АКСУ выпадал из рук после 6-ого выстрела в очереди. А предыдущие шли влево-вверх с углом град. 30 - типа, пыталась удержать...
« Изменён в : 14.11.2010 в 03:48:26 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #82 от 14.11.2010 в 03:43:55 »

14.11.2010 в 03:41:26, Bonarienz писал(a):
Опыт, сила, ловкость...  

А конкретней?
Зарегистрирован

Airbus
[Арбуз]
Прирожденный Джаец

Я люблю этот Форум!




Пол:
Репутация: +125
Re: Глюки и проблемы - 2
« Ответ #83 от 14.11.2010 в 03:43:57 »

2Bonarienz: Хм... Всегда думал, что от 9мм Парабеллума отдача будет слабее, чем от 5.56. Ошибался?
 
2Dirk_Diggler: Если по приведенной выше схеме (с желтой головой и красными точками) - то можно ввести возврат к первоначальному положению "головы" на N точек, в зависимости от силы бойца, опыта, прицеливания (если есть прицельная очередь. Я в оригинал ща играю, не знаю про моды)... "муде под стволом"...
« Изменён в : 14.11.2010 в 03:46:18 пользователем: Round Owl » Зарегистрирован

"Now I am become Death, the destroyer of squirrels"
Уникальная методика лечения авиафобии!

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #84 от 14.11.2010 в 03:48:07 »

14.11.2010 в 03:43:57, Airbus писал(a):
2Dirk_Diggler: Если по приведенной выше схеме (с желтой головой и красными точками) - то можно ввести возврат к первоначальному положению "головы" на N точек, в зависимости от силы бойца, опыта, прицеливания (если есть прицельная очередь. Я в оригинал ща играю, не знаю про моды)... "муде под стволом"...  

Вот, это уже да. Ок. остался один вопрос. что за массив-то такой предлагается получить?
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #85 от 14.11.2010 в 03:51:06 »

2Dirk_Diggler:  
А вот это - постановка задачи. Ща мы ее и будем в общем виде решать...
 
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #86 от 14.11.2010 в 03:51:18 »

14.11.2010 в 03:41:26, Bonarienz писал(a):
Вот, скажу как лох! Хочу, чтобы веер рассеивания у Ивана 10-ого уровня до 10-й пули в очереди укладывался в 1,2...1,4 торса. Т.е. из 10 пуль на расст. 20 тайлов, из АК-74 как минимум 7 попадали в цель. И чтобы у Айры АКСУ выпадал из рук после 6-ого выстрела в очереди. А предыдущие шли влево-вверх с углом град. 30 - типа, пыталась удержать...  

замечательно, но у стволов на текущий момент - всего 2 параметра, отведенных под описание автоматической стрельбы.
Зарегистрирован

Airbus
[Арбуз]
Прирожденный Джаец

Я люблю этот Форум!




Пол:
Репутация: +125
Re: Глюки и проблемы - 2
« Ответ #87 от 14.11.2010 в 03:51:23 »

2Dirk_Diggler: Если б было время, расписал бы, как я это понимаю. Но - вы с Bonarienz'ом слишком быстро разговариваете. :) Да и я сейчас гулять ухожу. Вернусь - гляну что еще написали, и попробую изложить.
Зарегистрирован

"Now I am become Death, the destroyer of squirrels"
Уникальная методика лечения авиафобии!

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #88 от 14.11.2010 в 03:53:16 »

14.11.2010 в 03:51:06, Bonarienz писал(a):
А вот это - постановка задачи. Ща мы ее и будем в общем виде решать...  

Это пока просто вопрос. )
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #89 от 14.11.2010 в 03:55:18 »

2Airbus:  
 
Имелась в виду рукоять под стволом... А вообще - буллпап - это дословно - бычьи муде или бычья мошонка... Юмор такой, технико-зоологический...
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #90 от 14.11.2010 в 03:58:45 »

14.11.2010 в 03:51:23, Airbus писал(a):
2Dirk_Diggler: Если б было время, расписал бы, как я это понимаю.

Как я понимаю, вы это понимаете так, что там половина weapons.c под переделку попадёт )
 
Блин, с такой мелочи как коррекция штрафа с линейного на нелинейный добраться до таких дебрей.
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #91 от 14.11.2010 в 04:05:21 »

2Dirk_Diggler:  
 
Получается, что в данном "куске" вычисляется мгновенная директриса? А собственно попадание-промах-обсчет и рендер трассы пули считаются потом?
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #92 от 14.11.2010 в 04:06:31 »

2Dirk_Diggler:  
 
В этом форуме - всегда так! Типа, привыкай! Рот всегда больше пирожного...
 
В данном ключе, наверное, пойдут Чебышёв, 3, 5 или даже 7-ого. Или - видимо, даже правильней - аппрокс. Лежандром прямая.
 
Т.е. имеем 1 выстрел точно, 1...3 след. не контролируем - тормозим и корректируем, 5-ый - та же точность, 6-ой - перерег., 7-ой - опять точно...
 
Для Лежандра будет вероятность более точного н-ного выстрела, нежели первый...
 
Вот только для скорости обсчета проще увязать значения функции с номером выстрела (таблицей), да масштабировать опытом.
« Изменён в : 14.11.2010 в 04:16:47 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #93 от 14.11.2010 в 04:08:59 »

14.11.2010 в 04:05:21, Bonarienz писал(a):
Получается, что в данном "куске" вычисляется мгновенная директриса? А собственно попадание-промах-обсчет и рендер трассы пули считаются потом?
      

Там сперва вычисляется шанс попадания в процентах. Функция CalcChanceToHitGun сперва возвращает шанс, потом берется рандом до 100 и смотрится разница - попал-не попал, и если не попал, то вот потом уже вокруг этой разницы(т.е. всего лишь одного числа) и начинаются пляски - насколько и куда пулю отклонить и т.п. Тоже всё рандомом. Просто шанс попадания - кое-где ещё маячит. Скажем, около курсора выводится. и AI его использует(у него  AICalcChanceToHitGun).
« Изменён в : 14.11.2010 в 04:13:28 пользователем: Dirk_Diggler » Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #94 от 14.11.2010 в 04:14:52 »

14.11.2010 в 04:06:31, Bonarienz писал(a):
В данном ключе, наверное, пойдут Чебышёв, 3, 5 или даже 7-ого. Или - видимо, даже правильней - аппрокс. Лежандром прямая.  

Напоминаю - в текущий момент у нас всего 2 параметра у ствола. Так что ни 3го, ни 7го пока не получится )
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #95 от 14.11.2010 в 04:16:32 »

14.11.2010 в 04:06:31, Bonarienz писал(a):
Т.е. имеем 1 выстрел точно, 1...3 след. не контролируем - тормозим и корректируем, 5-ый - та же точность, 6-ой - перерег., 7-ой - опять точно...  

вообще не понял ничего ) Что значит "не контролируем - тормозим и корректируем" и всё остальное?
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #96 от 14.11.2010 в 04:18:47 »

В принципе, если эти 2 параметра порезать на куски по 4 бита, можно получить 4 параметра, но маленькие )
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #97 от 14.11.2010 в 04:19:20 »

2Dirk_Diggler:  
Полагаю, что номер выстрела у нас тоже есть? Если нет - напрасны наши совершенства...
 
 14.11.2010 в 04:16:32, Dirk_Diggler писал(a):
Что значит "не контролируем - тормозим и корректируем" и всё остальное?  

 
Это поведение собственно стрелка, не оружия. Поведение влияет на наведение! О!
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #98 от 14.11.2010 в 04:20:28 »

14.11.2010 в 04:19:20, Bonarienz писал(a):
Полагаю, что номер выстрела у нас тоже есть? Если нет - напрасны наши совершенства...  

Есть. Он в переменной солдата хранится.
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #99 от 14.11.2010 в 04:22:39 »

4 бита на направление отдачи
4 бита на эксцентриситет эллипса
 
4 бита на силу отдачи /условно
4 бита на кучность. /условно
 
Получаем 2 байта ) Вот из этого уже можно слепить нечто ) Но опять же, это же абзац как переписывать всё стрельбу )
 
 
 14.11.2010 в 04:19:20, Bonarienz писал(a):
Это поведение собственно стрелка, не оружия. Поведение влияет на наведение! О!  

все равно не понял
« Изменён в : 14.11.2010 в 04:24:28 пользователем: Dirk_Diggler » Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #100 от 14.11.2010 в 04:23:47 »

2Dirk_Diggler:  
 
Ну, где пополам, там и пополамки - тож пополам! Котельников-Найквист - наше всё!
 
Если у нас есть эти два параметра, плюс номер выстрела - то уже можно думать. А если при этом легко добраться до параметров стрелка, то все устаканивается, вроде...
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #101 от 14.11.2010 в 04:25:25 »

14.11.2010 в 04:23:47, Bonarienz писал(a):
Если у нас есть эти два параметра, плюс номер выстрела - то уже можно думать. А если при этом легко добраться до параметров стрелка, то все устаканивается, вроде...  

Да нет же, в том-то и прикол. Мы не знаем, куда ушел предыдущий выстрел! Соот-но, вся затея с уводом очереди в какое-то направление - в такой концепции нереализуема. Либо менять структуру солдата, добавлять поле - это потащит за собой сейвы и проч. хвосты.
Я поэтому и предлагаю вносить изменения только в CalcChanceToHit
Да, реализма добавит мало. Но добавит.
« Изменён в : 14.11.2010 в 04:28:11 пользователем: Dirk_Diggler » Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #102 от 14.11.2010 в 04:30:13 »

2Dirk_Diggler: Не, погоди... Еще раз!
 
Вот берем 4 точки из Чебышева 3-его порядка.  Аппроксимируем точность попадания - по У - точность, по Х - номер пули.
 
Имеем - 1-ый - 100%, 2-ой - 70,7%, 3-ий - 100%, 4-ый - 70,7%, 5-ый - ~45% и т.п.
 
От первого - напугались, поэтому второй ушел, на третий - поправились и попали, на четвертом - устали-пережали, на пятом - выдохлись, плечо заболело...
 
Соответственно, точность приближения зависит от опыта - т.е. там, где у 4-ого уровня 70%, у 9-ого будет 90%...
« Изменён в : 14.11.2010 в 04:33:07 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #103 от 14.11.2010 в 04:31:50 »

14.11.2010 в 04:30:13, Bonarienz писал(a):
Вот берем 4 точки  

что значит берем? как берем - это и есть главный вопрос.
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #104 от 14.11.2010 в 04:34:25 »

2Dirk_Diggler:  
Ждал вопрос, поправил пред. сообщ.
 
Т.е. Сиры не хранят инфу о предш. событиях? Мы вообще без памяти-родства?
 
Но хоть номер выстрела - точно доступен?
 
Как раз под точками имел в виду номера выстрелов!!!
« Изменён в : 14.11.2010 в 04:35:52 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #105 от 14.11.2010 в 04:35:56 »

Вообще, то, что мы на момент просчета шанса попадания ничего не знаем про предыдущий выстрел - имеет свои плюсы.
В такой ситуации событие "выстрел" - есть событие независимое, а потому можно использовать вероятностные формулы по схеме независимых испытаний Бернулли. А говоря более просто, то - мы можем легко и быстро вычислить  
а) Вероятность попадания хотя бы одной пули из очереди ДО собсно начала стрельбы. О чем можем известить игрока, выведя эту вероятность у курсора
б) главное - математическое ожидание количетсва пуль, попавших в цель - аналогично. Мне лично крайне интересно, а сколько я примерно попаду пуль?  
Сейчас показывается у курсора - вероятность попадания первой пули. Т.е. информативность этого близка к нулю.
Ну и переписывать ничего не надо, так, добавить пару строк. Кстати, никто не мешает в формулу подсчета штрафа ввести силу и опыт.
 
Введение же "эллипсоидной модели" -сделает очередь более реалистичной, но - прощай просчет вероятности, ведь выстрелы станут зависимыми событиями. Останется только стрелять наудачу.
 
 
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #106 от 14.11.2010 в 04:37:47 »

14.11.2010 в 04:34:25, Bonarienz писал(a):
2Dirk_Diggler:  
Ждал вопрос, поправил пред. сообщ.  

 
Ответа все равно на нашел.
"Аппроксимируем точность попадания". Аппроксимировать - дело десятое. Надо же сперва иметь ЧТО аппроксимировать.
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #107 от 14.11.2010 в 04:38:51 »

14.11.2010 в 04:34:25, Bonarienz писал(a):
Т.е. Сиры не хранят инфу о предш. событиях? Мы вообще без памяти-родства?  

Какую-то хранят.  
А какую надо? Точку, куда улетела прошлая пуля? Это нет, не хранят. Гарантии не дам, во всяком случае, я не нашел.
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #108 от 14.11.2010 в 04:39:11 »

2Dirk_Diggler:  
"Вы ее вожделили!" (Велюров)
 
Нда! Гребаные канаки... Никакого системного подхода...
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #109 от 14.11.2010 в 04:45:07 »

2Dirk_Diggler:  
 
Вот смотри... Если принять модель с Чебышёвым (ось бросания пули вертится и качается вокруг точной директрисы), то вес функции от номера пули даст коэфф. для вероятности.  
 
Т.е. при точном прицеливании из очереди в 5 пуль как минимум две попадут в торс, а при дост. опыте другие две ранят в руки или ноги-голову.
 
Хотелось бы предыдущ. вероятность иметь...
« Изменён в : 14.11.2010 в 04:47:16 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #110 от 14.11.2010 в 04:49:52 »

14.11.2010 в 04:45:07, Bonarienz писал(a):
Хотелось бы предыдущ. вероятность иметь...  

негде хранить.  глобальную переменную заводить, что ли?...
 
14.11.2010 в 04:45:07, Bonarienz писал(a):
Если принять модель с Чебышёвым  

Да что за модель-то? Как полином получать, на каких данных?
« Изменён в : 14.11.2010 в 04:50:33 пользователем: Dirk_Diggler » Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #111 от 14.11.2010 в 05:00:24 »

2Dirk_Diggler:  
 
Мы аппроксимируем полиномом вероятность поражения цели!  
|
1*  *
|    
.7*   *        
|       *      
1_2_3_4_5_*___

Видимо, надо иначе нормировать - чтобы колебался вокруг 1 на + и на -. Но идея, надеюсь, понятна...
 
Блин, гадский шрифт...
      
 
 
 
 
 
« Изменён в : 14.11.2010 в 05:09:05 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #112 от 14.11.2010 в 05:08:54 »

14.11.2010 в 05:00:24, Bonarienz писал(a):
Но идея, надеюсь, понятна...  

Нет, непонятна. Что аппроксимируем - понятно.
Непонятно - ЧТО аппроксимируем. Для аппроксимации нужны данные. Где их будем брать?
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #113 от 14.11.2010 в 05:14:27 »

2Dirk_Diggler:  
Движок высчитал вероятность - она "модифицируется" с помощью полинома - увеличивается или уменьшается.
А значения функции загнаны в таблицу, выбор из которой - согласно номеру выстрела!
 
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #114 от 14.11.2010 в 05:18:49 »

2Dirk_Diggler:  
Справ. по спец. функциям есть ли под руками? Напр. Янке и Эмде? Наиболее точно и ЖИВОПИСНО было бы взять интеграл Френеля, комплексный, с зависимыми параметрами у Si(z) b Ci(z). Тогда спираль станет эллипсоидной.
 
Cf. Траектория полета зенитной ракеты, российской, не Патриота...
 
Т.е. ствол крутится вокруг директрисы первого выстрела, а плюс и минус к вероятности, даже с учетом неточности стрелка - дает полином.  
 
Берем, к примеру, Лежандра 5-ого порядка, нормируем первый выстрел под 1, тогда, по мере нарастания номера, поправка к вероятности и ее знак осциллируют вокруг 1, но амплитуда колебаний нарастает. Тогда, дажет при первонач. вер-ти 0,35 есть шанс попасть...
« Изменён в : 14.11.2010 в 05:23:34 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #115 от 14.11.2010 в 05:19:11 »

14.11.2010 в 05:14:27, Bonarienz писал(a):
2Dirk_Diggler:  
Движок высчитал вероятность - она "модифицируется" с помощью полинома - увеличивается или уменьшается.  

Да что ж такое-то. ))
Полином, полином мы откуда берем? Можно по шагам(сам алгоритм получения полиномов не надо) ?  
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #116 от 14.11.2010 в 05:24:26 »

14.11.2010 в 05:18:49, Bonarienz писал(a):
2Dirk_Diggler:  
Справ. по спец. функциям есть ли под руками? Напр. Янке и Эмде? Наиболее точно и ЖИВОПИСНО было бы взять интеграл Френеля, комплексный, с зависимыми параметрами у Si(z) b Ci(z).
:o ЗАЧЕМ????
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #117 от 14.11.2010 в 05:29:01 »

2Dirk_Diggler: 2Dirk_Diggler:  
 
Ответ на оба вопроса! Из полинома получаем таблицу поправок вероятности. Число из таблицы "вывешиваем" согласно опыту и пр. Полученное число прибавляем со знаком к вероятности, высчитанной движком.
 
Иначе говоря - таблица строится нелинейным квантованием как аргумента функции, так и ее значений.
 
Методом Монте-Негро произвольной вариации средне-потолочных значений! Но так, чтобы красивая очередь была!
« Изменён в : 14.11.2010 в 05:31:51 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #118 от 14.11.2010 в 05:31:41 »

14.11.2010 в 05:29:01, Bonarienz писал(a):
Ответ на оба вопроса! Из полинома получаем таблицу поправок вероятности.  
 
<facepalm>   ;)  
А полином - на каких данных получаем?
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #119 от 14.11.2010 в 05:33:28 »

14.11.2010 в 05:29:01, Bonarienz писал(a):
Методом Монте-Негро  

Монте-Карло ))))))
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #120 от 14.11.2010 в 05:36:29 »

А вот из размышлений - первый выстрел - согласно прицелу и вероятности, второй - неожиданно, третий - с поправкой на второй, четвертый - перебдели, пятый - ствол нагрелся-обожглись-пули вверх... И т.п.
 
Потому и Лежандр - его осцилляции разбегаются по мере роста аргумента. А Чебышёв равноколеблется, наименее уклоняясь...
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #121 от 14.11.2010 в 05:38:14 »

14.11.2010 в 05:36:29, Bonarienz писал(a):
А вот из размышлений - первый выстрел - согласно прицелу и вероятности, второй - неожиданно, третий - с поправкой на второй, четвертый - перебдели, пятый - ствол нагрелся-обожглись-пули вверх... И т.п.  

Гм. Т.е. мы имеем набор значений a1...aN (N-максимальное кол-во выстрелов в очереди) - из размышлений?. Принято. Вопрос возникает, будет ли он универсальным, или для каждого ствола свой, но не важно. Допустим, у нас такой набор есть. А накой бок нам его тогда аппроксимировать, если мы его уже имеем? Брать прям значения из этого набора, и дело с концом.
« Изменён в : 14.11.2010 в 05:40:49 пользователем: Dirk_Diggler » Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #122 от 14.11.2010 в 05:41:40 »

Чтобы совсем понятно было, почему помянут Френелев интеграл комплексный - если взять модуль от FI(1-z), то получим гладкую расходящуюся спираль, улетающую в ноль или бесконечность в "конце очереди"...  
 
Зенитные ракеты знаешь? Они стартуют резко вверх, а потом с упреждением, по сходящейся спирали, упрямо летят в сопло или центр ЭПР. Америкосам такого никада не сделать...
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #123 от 14.11.2010 в 05:43:21 »

2Dirk_Diggler:  
 
Метод Монте-Карло - научный, а вот Монте-Негро (Черногория) - наш, родной...
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #124 от 14.11.2010 в 05:49:09 »

2Dirk_Diggler:  
 
 14.11.2010 в 05:38:14, Dirk_Diggler писал(a):
Брать прям значения из этого набора, и дело с концом.

 
Ну! Зачем я шарики в рендер пулемета вписывал (это из POVray картинко)?
 
В идеале надо три-шесть таких табличек - пистолеты, ПП, ШВ, пулеметы, тяжелое, ножи-камни.
 
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #125 от 14.11.2010 в 05:54:07 »

2Dirk_Diggler:  
Глянь в Википедии интеграл Френеля, приставь ствол к "кончику спирали", по Х и У отложи номера выстрелов - получишь 3-х-мерную спираль, описываемую потоком свинца, с вырывом пушки из рук в районе нуля - макс. кол-ва пуль в очереди.
« Изменён в : 14.11.2010 в 05:55:33 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #126 от 14.11.2010 в 13:17:55 »

14.11.2010 в 05:43:21, Bonarienz писал(a):
Метод Монте-Карло - научный, а вот Монте-Негро (Черногория) - наш, родной...  

Вот интересно, почему эту таблицу методом тыка - можно составлять, а тупо подобрать нелинейную функцию для штрафа - нет?
 
14.11.2010 в 05:54:07, Bonarienz писал(a):
Глянь в Википедии интеграл Френеля, приставь ствол к "кончику спирали", по Х и У отложи номера выстрелов - получишь 3-х-мерную спираль, описываемую потоком свинца, с вырывом пушки из рук в районе нуля - макс. кол-ва пуль в очереди.  

 
Я таких сентенций не понимаю. интегралов френеля - два, разных, каждый из них есть функция одной переменной. Так что куда там что откладывать - и как из функции одной переменной получить 3хмерную спираль, и откуда там вообще спираль? Если имеется в в иду клотоида, так она не сходится вообще.
 
Если имеется в виду, что взять плоскость, перпендикулярную оси мерк-его цель, в начало координат ортогонально к ней "приставить" ствол, и откладывать координаты X=S(N), Y=C(N), где N - номер выстрела, полученную точку уже обрабатывать как отдачу, например, высчитать расстояние до начала координат(т.е. ствола), взвесить это число с применением силы/опыта и т.п., и вычесть из шанса как штраф? Возникает вопрос - а кто сказал, что интегралы Френеля вообще дают такое соответствие? И - где в этой модели параметры ствола-то? Или сперва берем эту точку, а потом её взвешиваем по параметрам ствола? Так это неправильно однозначно.
« Изменён в : 14.11.2010 в 13:49:17 пользователем: Dirk_Diggler » Зарегистрирован

Airbus
[Арбуз]
Прирожденный Джаец

Я люблю этот Форум!




Пол:
Репутация: +125
Re: Глюки и проблемы - 2
« Ответ #127 от 14.11.2010 в 18:41:45 »

14.11.2010 в 03:55:18, Bonarienz писал(a):
Имелась в виду рукоять под стволом...
Да понял, понял. :) АУГовскую рукоятку я помню.
 
Нда... Прочитал 39 постов с момента последнего посещения... Злые вы, уйду я от вас. ;D
 
Математик из меня никакой, так что вот так я это вижу: Допустим, у нас есть очередь в... 10 патронов с М4А1. Прицеливаемся в "голову", зажимаем курок. Первый патрон уйдет в голову (имеем перса с меткостью 90-100), второй - чуток выше и правее (не ожидал, не смог рассчитать увод ствола), и третий - выше первого, но без уклона по горизонтали (узнал по второму увод ствола, скорректировал, но вертикально все же ушло). Это - очередь с отсечкой, на М4 она есть, наверное потому что более-менее точная.
Далее - четвертый патрон. Имеем еще больший увод по вертикали вверх (можно завязать на Силу), а по горизонтали - в зависимости от Меткости/Опыта. Пятый также уводится вверх, и, как подметил Bonarienz, плечо устает, патрон уходит вправо.
И тут мы понимаем, что стреляем мы уже не совсем (совсем не) в голову. Резко возвращаем ствол на первую точку, и шестой-седьмой идут в голову (70-80%) или даже левее торса (перебор, завязать на опыт/силу/ловкость). С восьмого, допустим, начинается перегрев ствола. Так как мы уже полностью "в очереди", компенсируем отдачу почти полностью, но из-за ствола получается очень большой рандом траектории полета пули.
... С какого патрона у Иришки выбьет плечо и нанесется урон в 5HP, не знаю. :)
« Изменён в : 14.11.2010 в 18:43:58 пользователем: Round Owl » Зарегистрирован

"Now I am become Death, the destroyer of squirrels"
Уникальная методика лечения авиафобии!

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #128 от 14.11.2010 в 22:56:22 »

14.11.2010 в 18:41:45, Airbus писал(a):
Математик из меня никакой, так что вот так я это вижу: Допустим, у нас есть очередь в... 10 патронов с М4А1. Прицеливаемся в "голову", зажимаем курок. Первый патрон уйдет в голову (имеем перса с меткостью 90-100), второй - чуток выше и правее (не ожидал, не смог рассчитать увод ствола), и третий - выше первого, но без уклона по горизонтали (узнал по второму увод ствола, скорректировал, но вертикально все же ушло). Это - очередь с отсечкой, на М4 она есть, наверное потому что более-менее точная.

 
Итого, для моделирования очереди нам нужны следующие параметры:
1) длина отсечки
2) преимущественное направления отвода ствола
 
Quote:
Далее - четвертый патрон. Имеем еще больший увод по вертикали вверх (можно завязать на Силу), а по горизонтали - в зависимости от Меткости/Опыта.

3) силу отдачи
4) параметры стрелка
 
Quote:

Пятый также уводится вверх, и, как подметил Bonarienz, плечо устает, патрон уходит вправо.

Это, допустим, можно зашить в движок
 
Quote:
И тут мы понимаем, что стреляем мы уже не совсем (совсем не) в голову. Резко возвращаем ствол на первую точку, и шестой-седьмой идут в голову (70-80%)

Опять параметры солдата
 
Quote:
начинается перегрев ствола.
 
5) теплоемкость(в текущей модели она учитывается, емнип)
 
Quote:
компенсируем отдачу почти полностью, но из-за ствола получается очень большой рандом траектории полета пули.  

тут не понял. почему?
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #129 от 14.11.2010 в 23:38:13 »

Но все равно, возникают вопросы.
 
Первый - не смущает, что нельзя оценить точность очереди(и, соот-но, сознательно подогнать её длину)?  
 
Второй - сейчас шанс попадания и просчет траектории пули - несвязанные друг с другом вещи. Как я понимаю, предлагается связать. Однако, это переделает иодиночную стрельбу. Я бы еще 10 раз подумал бы...
 
Третий. - такая модель в общем лишает вообще каких либо шансов на попадание очередью, только с первой пули. Ствол ведет сразу и у всех.
« Изменён в : 14.11.2010 в 23:38:49 пользователем: Dirk_Diggler » Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #130 от 15.11.2010 в 01:58:44 »

2Dirk_Diggler:  
Вот! Пока трезв - постараюсь быть четче.  
Про Френеля - Три проекции Спирали Френеля в компл. пр-ве. как раз и будут СИ, КИ и клотоида (вот же имя-то).
 
Совсем не обязательно брать именно эту кривую, и эти коэфф-ты.  
 
Именно эта кривая - В ОБЩЕМ, качественно - показывает то движение, которое совершает стреляющий ствол! Не важно, в руках ли стрелка, или зажатый в пристрелочный станок.
 
Т.е. линия бросания вращается вокруг касательной к идеальной траектории, соответствующей точке прицеливания!!!  
Вращается - это не значит, что равномерно! Т.е. описывается не окружность, но сложная замкнутая кривая! А если это отобразить в виде вылетевших пуль, то получится как раз сложная спираль.
 
Кста - при перегреве ствол искривляется, образуя сложную дугу, в первом приближении похожую на цепную линию, если нет точки крепления ближе к срезу ствола, либо эллипс-овоид, если ствол укреплен в двух точках.
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Airbus
[Арбуз]
Прирожденный Джаец

Я люблю этот Форум!




Пол:
Репутация: +125
Re: Глюки и проблемы - 2
« Ответ #131 от 15.11.2010 в 02:07:45 »

14.11.2010 в 22:56:22, Dirk_Diggler писал(a):
тут не понял. почему?  
Компенсация отдачи - перед 8 было еще семь выстрелов, уже знаком увод ствола - человек старается предупредить черезмерный увод. А рандом разброса - ствол расширяется при нагреве.
 
14.11.2010 в 23:38:13, Dirk_Diggler писал(a):
Первый - не смущает, что нельзя оценить точность очереди
Я уже давно длину очереди на глаз определяю. У АК - три патрона на 15 тайлов, два - на 25, один (два для Совы) - 25+. У 5.56-ых стволов - четыре на 10 тайлов, три на 20, два на 30-, и остальное одиночками. А на 1-6 тайлов - по количеству АП перса и здоровью цели.
 
14.11.2010 в 23:38:13, Dirk_Diggler писал(a):
Второй - сейчас шанс попадания и просчет траектории пули - несвязанные друг с другом вещи. Как я понимаю, предлагается связать. Однако, это переделает и одиночную стрельбу. Я бы еще 10 раз подумал бы...
А что сейчас с траекторией полета пули?
 
14.11.2010 в 23:38:13, Dirk_Diggler писал(a):
Третий. - такая модель в общем лишает вообще каких либо шансов на попадание очередью, только с первой пули. Ствол ведет сразу и у всех.  
Всегда есть вариант из CS - очередь в три патрона в пузо, третий патрон уйдет в голову. :)
Зарегистрирован

"Now I am become Death, the destroyer of squirrels"
Уникальная методика лечения авиафобии!

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #132 от 15.11.2010 в 02:11:23 »

15.11.2010 в 01:58:44, Bonarienz писал(a):
Три проекции Спирали Френеля в компл. пр-ве.  

комплексное пр-во двумерно, там не может быть 3х проекций. Но я идею понял. 3хмерное пространство,обычное евклидово, если по X - это "си", Y - это "ки", а по Z откладывать номера выстрелов, то проекция получившегося дискретного набора точек на плоскость XY будет похоже на разброс пуль при "нормальной стрельбе". Это имеется в виду?
 
 15.11.2010 в 01:58:44, Bonarienz писал(a):
Именно эта кривая - В ОБЩЕМ, качественно - показывает то движение, которое совершает стреляющий ствол! Не важно, в руках ли стрелка, или зажатый в пристрелочный станок.
 
Т.е. линия бросания вращается вокруг касательной к идеальной траектории, соответствующей точке прицеливания!!!  
Вращается - это не значит, что равномерно! Т.е. описывается не окружность, но сложная замкнутая кривая! А если это отобразить в виде вылетевших пуль, то получится как раз  сложная спираль.  

Но ради этого морочиться на интегралы Френеля и иже с ним?  
Случайные физические процессы прекрасно аппроксимируются методами Монте-Карло. Если за этим дело встало - нужны данные по поражению цели очередями из разных стволом, и без Френеля можно отлично обойтись.
 
15.11.2010 в 01:58:44, Bonarienz писал(a):
Т.е. описывается не окружность, но сложная замкнутая кривая!

"Замкнутая" - в смысле "непрерывная"? Спираль по определению не бывает замкнутой.
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #133 от 15.11.2010 в 02:15:58 »

15.11.2010 в 02:07:45, Airbus писал(a):
Я уже давно длину очереди на глаз определяю.

Енто дано не всем. ) Лучше выдавать точные прогностические  данные )
 
15.11.2010 в 02:07:45, Airbus писал(a):
А что сейчас с траекторией полета пули?  

Напоминаю. Сперва
1) Вычисляется C - шанс попадания
2) Берется рандомное число R
3) Вычисляется "оценка промаха" D=R-C
4) Если D<=0, то игрок попал точно, идет расчет повреждений и т.п.
4) Если D>0, то пуля отклоняется от линии прицела пропорционально этой самой величие D
 
Отсюда видно, что тут отклонение считается ПОСЛЕ определения, попал ли игрок. А в предлагаемой модели - наоборот.  
 
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #134 от 15.11.2010 в 02:32:37 »

2Dirk_Diggler:  
 
Надо бы еще одну ветку открыть - ТФКП и Высший Анализ в ДжА!!!  ;D
 
Обрез ствола описывает - кажися - замкнутую кривую. А вот пули, они да, они летят по сложной спирали... Причем мета-ось спирали зависит еще и от силы притяжения...
 
Попробую состряпать картинку, со стволом, 12-ю пулями и мишенью. Но это не быстро...
 
Френель - это наиболее наглядный пример. Просто в общих курсах его никогда не объясняют в 3-х мерном пр-ве, и, тем более, не рассказывают о практич. применении...  
 
Если ты разбираешься в сист. управления - из всех известных траекторий преследования аппроксимация спиралью по типу инт. Френеля собачьей кривой с упреждением - дает наим. необх. коэфф. усиления в петле при макс. ампл. сигнала ошибки. Часто именно его амплитуду стараются делать неизменной, а угол схождения выбирают из параметров конуса рассеивания поражающей части. Такая система макс. устойчива, а "схождение" - гарантировано.
 
И еще раз повторю! Френель упомянут просто как пример, нагляднейший, как казалось...
 
В нашем случае нужна бы таблица параметров для каждого из 12 выстрелов, в которую можно забить, а потом и дополнять, все нужные и придумываемые вновь параметры.
 
Мне вот интересно - "же" физика учитывает, а вот как это "же" связано с "дальность" ствола?  
 
Т.е. крутить ли пулям сложную спираль вокруг прямой, или вокруг параболы?
« Изменён в : 15.11.2010 в 02:40:27 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Airbus
[Арбуз]
Прирожденный Джаец

Я люблю этот Форум!




Пол:
Репутация: +125
Re: Глюки и проблемы - 2
« Ответ #135 от 15.11.2010 в 02:35:47 »

15.11.2010 в 02:15:58, Dirk_Diggler писал(a):
Напоминаю.
Я этого не знал. :)
 
Первый патрон, допустим, можно так и оставить. А последующие: D = R [больше стандартного] - (Сила+Меткость+Опыт)/10 - С. И прибавляем штраф на N патрон очереди. И если D > 0, то пуля отклоняется в нужном нам направлении.
Зарегистрирован

"Now I am become Death, the destroyer of squirrels"
Уникальная методика лечения авиафобии!

Airbus
[Арбуз]
Прирожденный Джаец

Я люблю этот Форум!




Пол:
Репутация: +125
Re: Глюки и проблемы - 2
« Ответ #136 от 15.11.2010 в 02:37:51 »

15.11.2010 в 02:32:37, Bonarienz писал(a):
Ответ #134 от Сегодня в 17:32:37
Из всего сообщения я понял только смайлик. (ц с поправкой) подруга :)
Зарегистрирован

"Now I am become Death, the destroyer of squirrels"
Уникальная методика лечения авиафобии!

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #137 от 15.11.2010 в 02:39:05 »

15.11.2010 в 02:35:47, Airbus писал(a):
А последующие: D = R [больше стандартного] - (Сила+Меткость+Опыт)/10 - С.
И прибавляем штраф на N патрон очереди

 
Все эти (Сила+Меткость+Опыт)/10 и т.п. - включены в расчет шанса С. Там же - делается расчет "штрафа на N патрон очереди". Но он - линейно зависит от N. С этого момента всё и началось.
Зарегистрирован

Airbus
[Арбуз]
Прирожденный Джаец

Я люблю этот Форум!




Пол:
Репутация: +125
Re: Глюки и проблемы - 2
« Ответ #138 от 15.11.2010 в 02:41:20 »

2Dirk_Diggler: Weapons.c говоришь... Пойду-ка я его для начала гляну. :) Я тут пока только предположениями бросался.
Зарегистрирован

"Now I am become Death, the destroyer of squirrels"
Уникальная методика лечения авиафобии!

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #139 от 15.11.2010 в 02:42:42 »

15.11.2010 в 02:41:20, Airbus писал(a):
Weapons.c говоришь...

Ога, процедуры UseGun  и  CalcChanceToHitGun.
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #140 от 15.11.2010 в 02:44:04 »

2Dirk_Diggler:  
 
...я интересуюсь... А вот ломаная устроит? напр, до 3-го патрона вкл. - альфа*Штраф, а с 4-го - бета*Штраф. Альфу и бету считать из дальнобойности ствола, напр.
 
Как уже говорилось - хоцца рессеяние верт. и гориз, в пределах эллипса поражения.
 
Кста. Для АКМ он - вытянут по верт., наклонен влево, а линия визирования - чуть выше нижнего фокуса эллипса.
« Изменён в : 15.11.2010 в 02:46:21 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #141 от 15.11.2010 в 02:47:26 »

15.11.2010 в 02:32:37, Bonarienz писал(a):
В нашем случае нужна бы таблица параметров для каждого из 12 выстрелов, в которую можно забить, а потом и дополнять, все нужные и придумываемые вновь параметры.  

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

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #142 от 15.11.2010 в 02:49:33 »

15.11.2010 в 02:44:04, Bonarienz писал(a):

Как уже говорилось - хоцца рессеяние верт. и гориз, в пределах эллипса поражения.  

На текущий момент, в процедуру отклонения пули, передается только один параметр - разница D (между рандомом и шансом). Для создания такого отклонения надо иметь минимум ДВА параметра.
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #143 от 15.11.2010 в 02:51:50 »

15.11.2010 в 02:32:37, Bonarienz писал(a):
Т.е. крутить ли пулям сложную спираль вокруг прямой, или вокруг параболы?  

Вокруг прямой однозначно. А то мы так до моделирования сопротивления воздуха дойдем(а это уже не парабола) и давления солнечного света на пулю.
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #144 от 15.11.2010 в 02:55:35 »

15.11.2010 в 02:51:50, Dirk_Diggler писал(a):
давления солнечного света на пулю

 
Это-то - просто!!!  ;D Чисто малюс. вектор силы, давящий, блин, с северо-востока, под углом сигма=atan(5/2). Угол известен точно.
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #145 от 15.11.2010 в 02:57:24 »

2Dirk_Diggler:  
 15.11.2010 в 02:49:33, Dirk_Diggler писал(a):
Для создания такого отклонения надо иметь минимум ДВА параметра

 
А кто мешает так или иначе приделывать этот "Де" то к верт., то к гориз.?
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #146 от 15.11.2010 в 02:57:29 »

15.11.2010 в 02:55:35, Bonarienz писал(a):
исто малюс. вектор силы, давящий, блин, с северо-востока, под углом сигма=atan(5/2). Угол известен точно.  

Чего это угол известен точно? Солнце под разным углом на пулю давит в зависимости от времени суток. И пока пуля летит - угол меняется, однако. Дифур.
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #147 от 15.11.2010 в 02:58:44 »

2Dirk_Diggler:  
 
Ты еще забыл снос частиц оболочки - т.е. уравнение движения тела переменной массы надо вводить!!! ;D
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Airbus
[Арбуз]
Прирожденный Джаец

Я люблю этот Форум!




Пол:
Репутация: +125
Re: Глюки и проблемы - 2
« Ответ #148 от 15.11.2010 в 02:59:52 »

15.11.2010 в 02:44:04, Bonarienz писал(a):
А вот ломаная устроит? напр, до 3-го патрона вкл. - альфа*Штраф, а с 4-го - бета*Штраф
А ведь мысль то хорошая. Как мне сказал бывший военный, начиная с 5 патрона из АК (от бедра, ессно. "Прицельно" и "очередью" вещи несовместимые. Это решает вопрос с невозможностью попасть очередью) пули идут очень точно. Если стрелок опытный, конечно.
 
И два патрона из АК хорошо уходят. Третий - вдаль, а первые два - точно.
Зарегистрирован

"Now I am become Death, the destroyer of squirrels"
Уникальная методика лечения авиафобии!

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #149 от 15.11.2010 в 03:01:49 »

2Dirk_Diggler:  
 
А вот и нет! В ДжА меняется освещенность. А солнце, когда есть, всегда на СВ, с углом элевации сигма=atan(5/2)!  
 
Причем именно это однозначно указывает на расположение Арульки в южном полушарии.
 
Ага!
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #150 от 15.11.2010 в 03:04:30 »

2Airbus:  
 
Это так... Только твой знакомый, видимо - высокий ПРОФ. Сымаем шляпу, искренне. Отсечь два патрона из АКМ - это весьма непросто.
 
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #151 от 15.11.2010 в 03:05:28 »

15.11.2010 в 02:59:52, Airbus писал(a):
А ведь мысль то хорошая. Как мне сказал бывший военный, начиная с 5 патрона из АК (от бедра, ессно. "Прицельно" и "очередью" вещи несовместимые. Это решает вопрос с невозможностью попасть очередью) пули идут очень точно. Если стрелок опытный, конечно.
 
И два патрона из АК хорошо уходят. Третий - вдаль, а первые два - точно.  
Вот. Сейчас - каждый патрон летит кривее предыдущего. Лично я предлагаю пока решить простую задачу - подобрать закон вычисления штрафа чуть пореальней. Для создания такого закона - у нас есть всего два независимых параметра. Ломаную на них особо не построишь.
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #152 от 15.11.2010 в 03:07:12 »

15.11.2010 в 03:01:49, Bonarienz писал(a):
А вот и нет! В ДжА меняется освещенность. А солнце, когда есть, всегда на СВ, с углом элевации сигма=atan(5/2)!  

Срочно переделать модель !  ;D
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #153 от 15.11.2010 в 03:07:58 »

2Dirk_Diggler:  
Ну как же - не построишь? Есть же номер текущего выстрела в очереди? Или я опять что-то забыл?
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #154 от 15.11.2010 в 03:09:20 »

15.11.2010 в 03:07:58, Bonarienz писал(a):
2Dirk_Diggler:  
Ну как же - не построишь? Есть же номер текущего выстрела в очереди? Или я опять что-то забыл?  

Номер - есть! Если построишь - предлагайте модель. Я лично ума не дам как.
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #155 от 15.11.2010 в 03:09:54 »

2Dirk_Diggler:  
 
Мы же тебе говорили - горы и солнце!!! Корову новую, надеемся, уже видел?
 
Переделываем! Только кто будет тени переделывать? Пару десятков тысяч...
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #156 от 15.11.2010 в 03:12:30 »

2Dirk_Diggler:  
 
Мы Сей не розумеем настолько - надо бы код понимать.
 
На первый взгляд - при расчете этих двух параметров учитывать номер пули в очереди. С тем или иным весом, для того или другого параметра...
 
Если просто, то еще передавать dH и dV (гориз. и верт. отклонения) в расчет траектории...
« Изменён в : 15.11.2010 в 03:14:10 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #157 от 15.11.2010 в 03:16:48 »

15.11.2010 в 03:12:30, Bonarienz писал(a):
надо бы код понимать.

Не надо. Можно своими словами и формулами. Вопрос - как вычислить штраф P к шансу попадания, для выстрела номер N, и оружия с параметрами BurstPenalty и BurstHitStart?  
Параметры сейчас имеются в виду типа "сила отдачи" и "длина отсечки", но можно их использовать как угодно.
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #158 от 15.11.2010 в 03:19:28 »

2Dirk_Diggler:  
 
Как вариант 1/(Nmax-Ncurr) - величина, обратная разности выбранной (или макс. возм.) длины очереди и текущего выстрела.
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #159 от 15.11.2010 в 03:21:19 »

2Dirk_Diggler:  
 
Ну что же! Уже кое-что нарисовалось... Думаю, Терапевт смотрит на нас с иронической надеждой...
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Глюки и проблемы - 2
« Ответ #160 от 15.11.2010 в 03:23:30 »

2Dirk_Diggler:  
 
Еще раз уточни - как определены BurstPenalty и BurstHitStart? Как некий штраф для соотв. ствола, а вот второе?  
 
Да, надо еще соотнестись с аналог. процедурой для одиночного выстрела.
 
« Изменён в : 15.11.2010 в 03:25:23 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Airbus
[Арбуз]
Прирожденный Джаец

Я люблю этот Форум!




Пол:
Репутация: +125
Re: Глюки и проблемы - 2
« Ответ #161 от 15.11.2010 в 03:25:56 »

2Bonarienz: Эм... Мой знакомый - это мой пятидесятилетний отец. :) 25 лет в армии, несколько лет назад уволился.
 
Насчет отклонения - может их зашить в параметры ствола, и последующие пули кидать по вектору вверх-вправо? Для автоматчиков отклонение делить на 2.
Зарегистрирован

"Now I am become Death, the destroyer of squirrels"
Уникальная методика лечения авиафобии!

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #162 от 15.11.2010 в 03:30:24 »

второе - с какого момента штраф начинает действовать. Т.к. типа длина отсечки.
Зарегистрирован

Airbus
[Арбуз]
Прирожденный Джаец

Я люблю этот Форум!




Пол:
Репутация: +125
Re: Глюки и проблемы - 2
« Ответ #163 от 15.11.2010 в 03:30:46 »

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

"Now I am become Death, the destroyer of squirrels"
Уникальная методика лечения авиафобии!

Legend
[Переводчик]
Прирожденный Джаец

надА


Ё-мэйл

Пол:
Репутация: +864
Re: Клуб "Ночные операции" - 4
« Ответ #164 от 15.11.2010 в 03:40:18 »

2Dirk_Diggler: Quote:
А как ты точность определишь, ты же не стрелял из всей этой ботвы?  
Гы, сына, лол. Я тебе уже объяснял, что не обязательно быть курицей, чтобы уметь готовить яишницу ;) Это во-первых. Во-вторых, есть куча (тысячи их) таблиц/описаний/статистики/отзывов с результатами стрельб из различных единиц стрелкового оружия. Хотя не, ты прав, лучше сходить на полигон и из всего этого чуда пострелять. А для верности желательно взорвать ядрёну грену, а то вот откуда создателям игр знать, как она шарахнет? Они же не ходили на полигоны, не взрывали их
: cranky :
Зарегистрирован

- Удельный вес ядра твоей планеты думай!
- Эээ...

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #165 от 15.11.2010 в 03:47:40 »

15.11.2010 в 03:40:18, Legend писал(a):
лучше сходить на полигон и из всего этого чуда пострелять

Эт точно. Не почувствуешь - не поймешь. )))
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #166 от 15.11.2010 в 03:50:31 »

2Dirk_Diggler:  
Не обращай внимания на гениев. Они - бесплодны, но говорливы.
 
Немного смелости, и терпения - определиться с таблицей для одного, опорного, референсного ствола - и тупо СМОТРЕТЬ на экране, как стреляется с теми  или иными параметрами и коэфф.
 
Как говорят в моей области (видео и телевещание) - всему головой - экран и колонка!
 
« Изменён в : 15.11.2010 в 03:51:52 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #167 от 15.11.2010 в 03:56:32 »

2Dirk_Diggler:
  15.11.2010 в 03:30:24, Dirk_Diggler писал(a):
второе - с какого момента штраф начинает действовать. Т.к. типа длина отсечки.
 

 
Никак не въедем - это та длина очереди, что выставлена игроком?
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Legend
[Переводчик]
Прирожденный Джаец

надА


Ё-мэйл

Пол:
Репутация: +864
Re: Клуб "Ночные операции" - 4
« Ответ #168 от 15.11.2010 в 03:58:26 »

2Dirk_Diggler: Тогда с тебя ядрёна грена, с меня полигон :D : devil : Доставка на Бене, чтобы потом вычислить элипсоиду поражения =)
Зарегистрирован

- Удельный вес ядра твоей планеты думай!
- Эээ...

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #169 от 15.11.2010 в 03:58:31 »

Нет. Это параметр ствола. ну типа номер выстрела, на котором отдача лупит в плечо. У большинства стволов - равна 1, т.е. отдача с первого выстрела, поэтому уже у второго штраф резко растет.
Зарегистрирован

Airbus
[Арбуз]
Прирожденный Джаец

Я люблю этот Форум!




Пол:
Репутация: +125
Re: Клуб "Ночные операции" - 4
« Ответ #170 от 15.11.2010 в 04:01:33 »

15.11.2010 в 03:58:31, Dirk_Diggler писал(a):
поэтому уже у второго штраф резко растет
С учетом скорострельности - не успеет "лупануть". А вот с третьего уже должно уводить вдаль.
 
Поэтому я за параболу с коэффициентом = коэфф. кучности ствола. :)
Зарегистрирован

"Now I am become Death, the destroyer of squirrels"
Уникальная методика лечения авиафобии!

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #171 от 15.11.2010 в 04:08:18 »

2Dirk_Diggler: 2Airbus:  
 
Вот Вам обоим - таблица! Там даже аПыски в заголовках таблицы!
 
http://ru.wikipedia.org/wiki/%D0%90%D0%9A%D0%9C
 
Отличный материал. Осталось разобраться в сущ. модели, модиф. ее и привязать таблицу поправок для стволов/стрелков.
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #172 от 15.11.2010 в 04:15:19 »

15.11.2010 в 04:08:18, Bonarienz писал(a):
Отличный материал. Осталось разобраться в сущ. модели, модиф. ее и привязать таблицу поправок для стволов/стрелков.
 

и получим данные только по одному стволу. потом то же самое по всем остальным, а потом -придумать схему хранения этих данных, переписать десяток функций и т.д и т.п.
Зарегистрирован

Airbus
[Арбуз]
Прирожденный Джаец

Я люблю этот Форум!




Пол:
Репутация: +125
Re: Клуб "Ночные операции" - 4
« Ответ #173 от 15.11.2010 в 04:17:44 »

2Bonarienz: Посмотрел. Получился, грубо говоря, неправильный конус от стрелка. И там стрельба короткими очередями, а мы рассчитываем еще и длинные.
Зарегистрирован

"Now I am become Death, the destroyer of squirrels"
Уникальная методика лечения авиафобии!

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #174 от 15.11.2010 в 04:27:50 »

2Dirk_Diggler:  
 
Да нет! Нам же известен ствол, есть целая простыня с его параметрами - ттх.тхт!
 
Ужели так трудно все это увязать? Таблица - общая для всего типа стволов, и веса - для конкретных стволов из типа. Например...
 
Уверен, что подобные таблицы можно довольно быстро найти для всех мыслимых стволов. Если не офиц., то любит.
« Изменён в : 15.11.2010 в 04:29:15 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Клуб "Ночные операции" - 4
« Ответ #175 от 15.11.2010 в 04:30:16 »

15.11.2010 в 04:27:50, Bonarienz писал(a):
Таблица - общая для всего типа стволов, и веса - для конкретных стволов из типа.

не может она быть общая.
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #176 от 15.11.2010 в 04:42:23 »

2Dirk_Diggler:  
 
Я вспомнил!!! Кажися, в ДжА тайл есть в двух ипостасях!
 
В ближней зоне тайл - 1 метр! В дальней зоне (стрельба) тайл - 10 метров!!!
 
Т.е. при стрельбе по врагу, стоящему в 20 тайлах, ты стреляешь на 200 метров!!!
 
А таблицу всегда можно сделать общей - коэфф-мидля стволов при ее параметрах.
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #177 от 15.11.2010 в 04:49:39 »

2Dirk_Diggler:  
 
Кста! Если все прально поняли, то простой подстановкой 2 или 3 в BurstHitStart мы получаем ломаную? Т.е. первые два-три выстрела будут относительно точными?
 
Если так, то надо взвешивать оба параметра некоей функцией от номера выстрела...
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Клуб "Ночные операции" - 4
« Ответ #178 от 15.11.2010 в 04:54:29 »

2Dirk_Diggler:  
 
Эти параметры "живут" в ттх.тхт!!! Правь и пробуй!!!  
 
И я знаю, кто это сделал!
 
А посему - видимо, не составит проблемы вписать параметры эллипса рассеивания для всех стволов прямо в ттх.тхт!!!
 
Я даже уверен, что теперь мои персы будут стрелять очередями, как Иван или Тоска 10-ого уровня!!!
« Изменён в : 15.11.2010 в 04:55:43 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #179 от 15.11.2010 в 05:17:51 »

13.11.2010 в 21:29:19, Терапевт писал(a):
Алгоритмы ИИ (и прочие советы по модификации кода) интересны только тогда, когда основаны на проверенных фактах, а не на предположениях, сформировавшихся только лишь при разглядывании кода.
Прежде чем озвучивать свои предположения по работе фрагментов кода, попробуй их проверять с помощью отладчика, узнаешь много интересного. ;)
 

Сделал сейв, в котором фраг ложится/встает.  
Попробовал отладить. Виснет. Какая конфигурация сборки предназначена для отладки?
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #180 от 15.11.2010 в 05:18:31 »

15.11.2010 в 04:49:39, Bonarienz писал(a):

Кста! Если все прально поняли, то простой подстановкой 2 или 3 в BurstHitStart мы получаем ломаную? Т.е. первые два-три выстрела будут относительно точными?  

Да. Тогда штраф на эти выстрелы получается очень маленький.
« Изменён в : 15.11.2010 в 05:19:02 пользователем: Dirk_Diggler » Зарегистрирован

Терапевт
[Кулибин]
Кардинал


Народный целитель. Шарлатан высшей категории.




Пол:
Репутация: +1187
Re: Глюки и проблемы - 2
« Ответ #181 от 15.11.2010 в 18:59:43 »

13.11.2010 в 21:38:27, Dirk_Diggler писал(a):
практическая проверка чревата тем, что я вместо работы с алгоритмами все время трачу на проверку.

При модификациях ИИ на это у меня уходит большая часть времени, а иначе никак с гарантией не убедиться в правильности и работоспособности изменений.
 
 13.11.2010 в 21:38:27, Dirk_Diggler писал(a):
Я бы компилил экзешники для желающих потестить мои предложения ) и выкладывал бы здесь.  

Я не против. Правда не уверен, что найдётся много желающих очень часто проверять вносимые изменения. Да и сторонняя оценка очень субъективна. Одни скажут, что что-то изменилось, а другие этого не заметят. Кому верить - не понятно. Поэтому в данном случае работает принцип: сам не сделаешь, никто не сделает.
 
 15.11.2010 в 05:17:51, Dirk_Diggler писал(a):
Какая конфигурация сборки предназначена для отладки?

Debug.
 
Что касается изменения формулы начисления штрафа в очереди, то менять её нет никакого смысла. Точность первых выстрелов в очереди может быть и так очень высокой в силу того, что при расчётах вероятность попадания может значительно превышать 100%, и только в самом конце вычислений обрезается до 99%.
« Изменён в : 15.11.2010 в 19:05:14 пользователем: Терапевт » Зарегистрирован

Весна! Я уже не грею пиво! (с) В.Цой
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Глюки и проблемы - 2
« Ответ #182 от 15.11.2010 в 21:11:36 »

15.11.2010 в 18:59:43, Терапевт писал(a):
Точность первых выстрелов в очереди может быть и так очень высокой в силу того, что при расчётах вероятность попадания может значительно превышать 100%, и только в самом конце вычислений обрезается до 99%.  

вот-вот ) Еще один аргумент за то, что её надо менять. )  
15.11.2010 в 18:59:43, Терапевт писал(a):
Debug.  

У меня Debug намертво виснет при запуске, отжирая 99% процессора.Модифицировал для отладки конфигурацию Release, вроде кое-как работает.
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Наука и религия в исходниках НО.
« Ответ #183 от 15.11.2010 в 21:34:34 »

Знаете что, господа... Посмотрел я ваш "эллипс рассеивания" для станковых пулеметов.. Это же обычное нормальное распределение для координат X и Y, просто с чуть-чуть отличающейся дисперсией, что и дает небольшой эксцентриситет. Стоило огород городить...
Вот прицепился!       shemaf.jpg
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Наука и религия в исходниках НО.
« Ответ #184 от 15.11.2010 в 23:18:29 »

2Dirk_Diggler:  
 
Только для автоматов эллипс - растянут по горизонтали... И считать такое распределение - долго!!!
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Наука и религия в исходниках НО.
« Ответ #185 от 15.11.2010 в 23:21:16 »

15.11.2010 в 23:18:29, Bonarienz писал(a):
И считать такое распределение - долго!!!  

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

jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: Наука и религия в исходниках НО.
« Ответ #186 от 16.11.2010 в 02:13:05 »

2Dirk_Diggler:  15.11.2010 в 21:11:36, Dirk_Diggler писал(a):
У меня Debug намертво виснет при запуске, отжирая 99% процессора.Модифицировал для отладки конфигурацию Release, вроде кое-как работает.
Настройки глубины цвета рабочего стола на 16 бит ставил?
Зарегистрирован

Don't worry, be happy.
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Наука и религия в исходниках НО.
« Ответ #187 от 16.11.2010 в 03:01:05 »

так. выкатил 16 бит, глянем...
« Изменён в : 16.11.2010 в 03:08:49 пользователем: Dirk_Diggler » Зарегистрирован

MAn
[Человечище!!!]







Пол:
Репутация: +403
Re: Наука и религия в исходниках НО.
« Ответ #188 от 17.11.2010 в 00:09:15 »


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

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Наука и религия в исходниках НО.
« Ответ #189 от 17.11.2010 в 00:15:27 »

17.11.2010 в 00:09:15, MAn писал(a):
А чо б не вычислять попадание только для первой пули, а для всех остальных вычислять только отклонение от первой, в соответствии с цифрами в колонке BurstPenalty?  

Ты понимаешь, тут дело в модели попадания, ведь процедура отклонения вызывается после того, как принято решение, что пуля летит в молоко... Там как красиво очередь не "рисуй", конфетки не сделаешь, придется перерабатывать всю модель стрельбы.  
 
17.11.2010 в 00:09:15, MAn писал(a):
ля каждой  последующей пули в очереди  вычисляется отклонение относительно места попадания первой, или:  точка привязки смещается - для второй пули вычисляетсчя отклонение относительно места попадания первой;

Если пробрасывать вычисление шанса попасть, а просто пули отклонять, то 99% всех пуль пойдут мимо. Я не до конца разглядел физ. модель, но чтобы пуля пошла точно во врага, там ей ОЧЕНЬ точно надо задать параметры полета. Для этого и вводится вычисления вероятности попадания. Т.е. сперва "бросается игральная кость", смотрится - если попал - то параметры вычисляются ТОЧНО. Если не попал - тогда углы ставятся от балды. Конечно, есть вероятность, что пуля таки даже с этими случайными углами попадет. но она стремится к нулю. Чтобы очередью попадать - сейчас нельзя пробрасывать вычисления шанса попадания. В этом одна из корневых проблем.
Зарегистрирован

MAn
[Человечище!!!]







Пол:
Репутация: +403
Re: Наука и религия в исходниках НО.
« Ответ #190 от 17.11.2010 в 00:25:47 »

17.11.2010 в 00:15:27, Dirk_Diggler писал(a):
Ты понимаешь, тут дело в модели попадания, ведь процедура отклонения вызывается после того, как принято решение, что пуля летит в молоко...  

ну, я просто в порядке обсуждения... потрепаться так скать :)
Но я думаю, что ты не прав... это вообще второстепенный  вопрос как там процедуру отклонения вызывать.. ну, просто навязать алгоритму мнение, что все остальные пули летят в молоко...  
 
 17.11.2010 в 00:15:27, Dirk_Diggler писал(a):
Т.е. сперва "бросается игральная кость", смотрится - если попал - то параметры вычисляются ТОЧНО. Если не попал - тогда углы ставятся от балды. Конечно, есть вероятность, что пуля таки даже с этими случайными углами попадет. но она стремится к нулю.  

И тут не соглашусь... Наоборот, все необъяснимые на первый взгляд попадания... ну, там в голову с 25 тайлов... связаны с тем, что "кубик кидается дважды" ,т.е. даже если промазал, то всё равно можно попасть из-за того, что отклонение будет маленькое.
 
Потом, ты ж невнимательно прочёл - отклонение пули зависит от условно=заданной цифры в колонке BurstPenalty (там щас штраф на очередь указан)... отклонение может быть и очень маленьким
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Наука и религия в исходниках НО.
« Ответ #191 от 17.11.2010 в 00:49:50 »

Code:
fGonnaHit = uiDiceRoll <= uiHitChance;

 
Code:
FireBulletGivenTarget( pSoldier, dTargetX, dTargetY, dTargetZ, pSoldier->usAttackingWeapon, (UINT16) (uiHitChance - uiDiceRoll), fBuckshot, FALSE );

 
Code:
           pBullet->sHitBy      = sHitBy;

 
                   Code:
if ( sHitBy >= 0 )
                  {
                        // calculate by hand (well, without angles) to match LOS
                        pBullet->qIncrX = FloatToFixed( dDeltaX / (FLOAT)iDistance );
                        pBullet->qIncrY = FloatToFixed( dDeltaY / (FLOAT)iDistance );
                        pBullet->qIncrZ = FloatToFixed( dDeltaZ / (FLOAT)iDistance );
                        ddAdjustedHorizAngle = ddHorizAngle;
                        ddAdjustedVerticAngle = ddVerticAngle;
                  }
                  else
                  {
                        CalculateFiringIncrements( ddHorizAngle, ddVerticAngle, d2DDistance, pBullet, &ddAdjustedHorizAngle, &ddAdjustedVerticAngle );
                  }

 
Т.е. в пулю зашивается её точность, и вычисляются точные инкременты.  
 
А алгоритм попаданий считается так. Для пули составляется список всех структур(включая людей) на карте, в которые она МОЖЕТ попасть. Не учитывая её направление. А только - 2 параметра, нач. и конечный тайл.  
список составляется так - типа, ты в тайле где и пуля? НЕт? Следующий. Ты в тайле? В тебя можно попасть пулей? Записываем.
А дальше идет перебор списка - типа кто там и что там, в этом тайле. В т.ч. идет проверка и по координатам:  
Code:

       if (((*(pStructure->pShape))[pBullet->bLOSIndexX][pBullet->bLOSIndexY] & AtHeight[iCurrCubesAboveLevelZ]) > 0)
       {
        if (pStructure->fFlags & STRUCTURE_PERSON)
        {
         // hit someone!
         fStopped = BulletHitMerc( pBullet, pStructure, fIntended );
         if (fStopped)
         {
          // remove bullet function now called from within BulletHitMerc, so just quit
          return;
         }
« Изменён в : 17.11.2010 в 01:17:25 пользователем: Dirk_Diggler » Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Наука и религия в исходниках НО.
« Ответ #192 от 17.11.2010 в 01:31:57 »

17.11.2010 в 00:09:15, MAn писал(a):
А чо б не вычислять попадание только для первой пули, а для всех остальных вычислять только отклонение от первой, в соответствии с цифрами в колонке BurstPenalty?  

Проблема в том, где хранить вероятность попадания первой пули.  
 
Кстати, напомните, в чем основная претензия к очередям? А то я уже за деревьями лес потерял...
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Наука и религия в исходниках НО.
« Ответ #193 от 17.11.2010 в 01:38:16 »

Вот у меня претензия - веерная стрельба практически бесполезна, вне зависимости от очереди... Фраги вообще нихрена не боятся. И накрыть из РПК толпу идиотов, скучковавшихся где-либо - очень сложно. Это как раз потому, что в вышеупомянутый список структур, какие МОЖНО подстрелить, солдаты попадают гарантированно только если стреляем мы в т.ч. именно в его тайл...
« Изменён в : 17.11.2010 в 01:43:05 пользователем: Dirk_Diggler » Зарегистрирован

Luficer
[Аццкий Сотона]
Прирожденный Джаец

Да, это негр :)


Ё-мэйл

Пол:
Репутация: +318
Re: Наука и религия в исходниках НО.
« Ответ #194 от 17.11.2010 в 02:40:31 »

17.11.2010 в 01:38:16, Dirk_Diggler писал(a):
Вот у меня претензия - веерная стрельба практически бесполезна, вне зависимости от очереди...

 
Вот здесь ты чертовски прав. В практике (в частности сектор из А-серии, недалеко от СЗ ПВО, тот, что с островом) у меня были случаи, когда, стреляя из чего-то маломощного, но автоматического (MAC-10) очередями по 10 патронов удавалось за ход цепануть 2-х 3-х плохишей, скопившихся на участке в 9 квадратных тайлов. А при переигрывании хода, бывало, и ни одного не ранишь.
Будь у мерка пулемет+ соответствующая меткость - первые 6 пуль ушли бы в тушку мишени, остальные "в молоко" .  
Довольно часто, прицельная стрельба "в область" могла бы очень пригодиться. При выкуривании снайперов и "засадников", к примеру или при стрельбе по плотной толпе. Пока же приходится для таких случаев таскать на себе РПГ, который, кстати, уже не торт.
 
Есть еще одна вещь, не знаю правда, механизма ее действия. Если при стрельбе очередью зажать ЛКМ на мишени и не отпускаяпровести линию по карте (по ходу линии появляется "мусор" в виде остатков прицельного перекрестья), то стрельба будет вестись примерно по этой линии. Правда, не проверял результаты на толпе, но, думаю, ничего хорошего не выйдет.
Зарегистрирован

Ночью в тёмных переулках Астаны слышно цоканье копытцев Сотоны.
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Наука и религия в исходниках НО.
« Ответ #195 от 17.11.2010 в 02:44:12 »

17.11.2010 в 02:40:31, Luficer писал(a):
равда, не проверял результаты на толпе, но, думаю, ничего хорошего не выйдет.
      

Я пробовал пару десятков раз. Максимум - попадает первая пуля.  
 
 17.11.2010 в 02:40:31, Luficer писал(a):
прицельная стрельба "в область" могла бы очень пригодиться.  

пока не так-то просто реализовать это. Или надо увеличивать вероятность попадания в структуру до 100%, даже если ты в неё не целился...
« Изменён в : 17.11.2010 в 02:46:27 пользователем: Dirk_Diggler » Зарегистрирован

Luficer
[Аццкий Сотона]
Прирожденный Джаец

Да, это негр :)


Ё-мэйл

Пол:
Репутация: +318
Re: Наука и религия в исходниках НО.
« Ответ #196 от 17.11.2010 в 03:16:44 »

17.11.2010 в 02:44:12, Dirk_Diggler писал(a):
пока не так-то просто реализовать это. Или надо увеличивать вероятность попадания в структуру до 100%, даже если ты в неё не целился...  

А как это выглядит сейчас? Понимаю, что где-то в этой ветке уже есть ответ, но все же, если не сложно, можешь выложить кусок кода, отвечающий за вероятность попадания с комментариями?
Зарегистрирован

Ночью в тёмных переулках Астаны слышно цоканье копытцев Сотоны.
Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Наука и религия в исходниках НО.
« Ответ #197 от 17.11.2010 в 03:28:09 »

Кода - очень дохрена. Кратко алгоритм.
 
1) Определяется вероятность попадания C
2) Кидается рандом R, берется отклонение D от шанса  
3) Формируется пуля. Пуле выдается направление на цель. Точное - если мы попали. И "примерно от балды" в противном случае, причем направление лежит между двумя конусами с вершиной в конце ствола. Внутренний конус ограничивает направление так, чтобы мы случайно не попали в цель - мы же уже промазали. Внешний ограничивает разброс. В пуле также храним тайл куда стреляем(где цель) и - отклонение D.
4) Пуля летит. на каждом перемещении:  
    а) для пули составляется список всех структур(включая людей) на карте, в которые она МОЖЕТ попасть. Список составляется примерно так - типа, ты в тайле где и пуля? Нет? Следующий. Ты в тайле? Это в тебя игрок целился? Да? Записываем. Нет? Берем вероятность поражения структуры. Вот тут идет вычисления по всяким формулам и коэф. Сетка поражается слабо(пули пролетают насквозь обычно), стены поражаются всегда, камни и деревья - иногда.
   б) обходим список и проверяем на совпадение пули и точки структуры.
 
Как видно, мало чтобы координаты пули оказались внутри предмета. Надо, чтобы этот предмет был в списке проверяемых на такое совпадение! А люди туда попадают совсем не всегда, 100% гарантия попасть в список ТОЛЬКО у того, в кого мы целились.
Зарегистрирован

MAn
[Человечище!!!]







Пол:
Репутация: +403
Re: Наука и религия в исходниках НО.
« Ответ #198 от 17.11.2010 в 19:33:03 »

17.11.2010 в 03:28:09, Dirk_Diggler писал(a):
3) Формируется пуля. Пуле выдается направление на цель. Точное - если мы попали. И "примерно от балды" в противном случае, причем направление лежит между двумя конусами с вершиной в конце ствола. Внутренний конус ограничивает направление так, чтобы мы случайно не попали в цель - мы же уже промазали. Внешний ограничивает разброс.

А это не ошибка, часом? Вот здесь написано иное:  
http://forum.ja2.su/cgi-bin/yabb/YaBB.pl?board=ja2v113;action=display;nu...
  Quote:
Первая часть ("попадание") проста дял понимания: если бросок кости успешен, пуля летит прямёхонько в центр мишени. Если на пути не будет препятствий, пуля попадёт точно в ту часть тела, в которую целились. Следовательно, с 50% ШП, 50% пуль улетит точно в центр мишени.    Вторая часть это то о чём большинство игроков пребывают в блаженном неведении, она разбирается с пулями которые провалили бросок и проверку по ШП. В зависимости от того насколько бросок кости был меньше ШП, пуля может пролететь в пределах определённого радиуса от центра мишени. Учитывая что радиус довольно большой (низкий ШП), или дистанция довольно велика, пуля может разминуться с целью полностью. Однако, всегда есть шанс что пуля вылетит в точку, достаточно близкую к ценрту мишени, чтобы поразить его, и это всё при том что она была определена как "промах"! Более того, с тем фактором случайности, который используется в формуле, довольно таки возможно для пули "промаха" прилететь прямо в центр цели, словно это пуля "попадания".

 
 17.11.2010 в 03:28:09, Dirk_Diggler писал(a):
А люди туда попадают совсем не всегда, 100% гарантия попасть в список ТОЛЬКО у того, в кого мы целились.

Багмонстр грит, что быдто 40 или 60%
http://forum.ja2.su/cgi-bin/yabb/YaBB.pl?board=ja2v113;action=display;nu...
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Наука и религия в исходниках НО.
« Ответ #199 от 17.11.2010 в 19:38:03 »

17.11.2010 в 19:33:03, MAn писал(a):
А это не ошибка, часом? Вот здесь написано иное:  

Обратить внимание на ddMinimumMiss и его использование.
 
       Code:
// Want to make sure that not too many misses actually hit the target after all
            // to miss a target at 1 tile is about 30 degrees off, at 5 tiles, 6 degrees off
            // at 15 tiles, 2 degrees off.  Thus 30 degrees divided by the # of tiles distance.
            ddMinimumMiss = MIN_AIMING_SCREWUP / (dd2DDistance / CELL_X_SIZE );
            
            if (ddMinimumMiss > ddMaximumMiss)
            {
                  ddMinimumMiss = ddMaximumMiss;
            }
 
            ddAmountOfMiss = ( (ddMaximumMiss - ddMinimumMiss) * (DOUBLE) iMissedBy) / 100.0 + ddMinimumMiss;
if (PreRandom( 2 ) )
            {
                  ddHorizAngle += ddAmountOfMiss * (100.0 - ddVerticPercentOfMiss) / 100.0;
            }
            else
            {
                  ddHorizAngle -= ddAmountOfMiss * (100.0 - ddVerticPercentOfMiss) / 100.0;
            }
 
            // miss up or down
            if (PreRandom( 100 ) < uiChanceOfMissAbove)
            {
                  ddVerticAngle += ddAmountOfMiss * ddVerticPercentOfMiss / 100.0;
            }
            else
            {
                  ddVerticAngle -= ddAmountOfMiss * ddVerticPercentOfMiss / 100.0;
            }
« Изменён в : 17.11.2010 в 19:38:38 пользователем: Dirk_Diggler » Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Наука и религия в исходниках НО.
« Ответ #200 от 17.11.2010 в 19:43:57 »

17.11.2010 в 19:33:03, MAn писал(a):
Багмонстр грит, что быдто 40 или 60%  

Там большая и толстая процедура определения шанса, зависит от расстояния и т.п.
 
А вот если мы туда и целились - то все 100%
 
Code:
uiChanceOfHit = ChanceOfBulletHittingStructure( pBullet->iLoop, pBullet->iDistanceLimit, pBullet->sHitBy );
 
 if (iGridNo == (INT32) pBullet->sTargetGridNo)
  {
   fIntended = TRUE;
   // if in the same tile as our destination, we WANT to hit the structure!
   if ( fIntended )
   {
    uiChanceOfHit = 100;
   }

 
а потом вот так добавляем в структуры:  
 
Code:
     if ( PreRandom( 100 ) < uiChanceOfHit )
      {
       gpLocalStructure[iNumLocalStructures] = pStructure;
       gubLocalStructureNumTimesHit[iNumLocalStructures] = 0;
       iNumLocalStructures++;
      }
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Наука и религия в исходниках НО.
« Ответ #201 от 17.11.2010 в 19:50:21 »

А bugmonster-то прав... В принципе, в LOS.c есть всё, чтобы поменять модель стрельбы...
Зарегистрирован

MAn
[Человечище!!!]







Пол:
Репутация: +403
Re: Наука и религия в исходниках НО.
« Ответ #202 от 17.11.2010 в 19:53:04 »

17.11.2010 в 19:38:03, Dirk_Diggler писал(a):
Обратить внимание на ddMinimumMiss и его использование.

Гм, ну я не силён в английском, но мне кажется, что там написано:
 17.11.2010 в 19:38:03, Dirk_Diggler писал(a):
Want to make sure that not too many misses actually hit the target after all              // to miss a target at 1 tile is about 30 degrees off, at 5 tiles, 6 degrees off              // at 15 tiles, 2 degrees off.  Thus 30 degrees divided by the # of tiles distance.   

Хотим, мол, чтобы не слишком часто "промахи" попадали в цель.
Для этого вводится ограничение по отклонению, то бишь пуля отклонившаяся на некоторый градус = 30/колво тайлов  не поражает цель, даже если и проходит через неё.
Зарегистрирован

Dirk_Diggler
[Дерзкий шахтёр]
Прирожденный Джаец

ы




Репутация: +48
Re: Наука и религия в исходниках НО.
« Ответ #203 от 17.11.2010 в 20:00:31 »

17.11.2010 в 19:53:04, MAn писал(a):

Хотим, мол, чтобы не слишком часто "промахи" попадали в цель.  

ddAmountOfMiss = ( (ddMaximumMiss - ddMinimumMiss) * (DOUBLE) iMissedBy) / 100.0 + ddMinimumMiss;  
 
Т.е. ddAmountOfMiss  не может быть меньше этого ddMinimumMiss. А мы потом углы на этот ddAmountOfMiss правим. Т.е ограничение конусом  "изнутри" есть. Вопрос в том, это именно строгий конус, или просто уменьшение вероятности - не так важно, лень формулу разбирать. В любом случае, если угол слишком точный - он дополнительно отклоняется.
Зарегистрирован

MAn
[Человечище!!!]







Пол:
Репутация: +403
Re: Наука и религия в исходниках НО.
« Ответ #204 от 17.11.2010 в 20:11:46 »

17.11.2010 в 20:00:31, Dirk_Diggler писал(a):
не так важно, лень формулу разбирать. В любом случае, если угол слишком точный - он дополнительно отклоняется.

Ага :)  
Вообще, внутреннее устройства кода интересно ( и понятно полностью) только программисту... мне же достаточно общего вывода - что в конце концов происходит
Зарегистрирован

valuta
Псих

Я люблю этот Форум!




Пол:
Репутация: ---
Re: Наука и религия в исходниках НО.
« Ответ #205 от 04.03.2012 в 21:42:21 »

Всем привет! Я новенький, ногами не бейте, плиз.
В исходниках шанс попадания = (меткость + кондиция оружия) / 2.  
Видимо в оригинале Джа 2 так же.
Значит:
 1)неандерталец, найдя ствол 100% исправный, попадет в цель фифти-фифти
 2)профи с меткостью 100 из ствола нулевой кондиции тоже фифти-фифти.
Без учета штрафов и бонусов ессно.
IMHO надо брать корень произведения  sqrt( меткость*кондиция).
« Изменён в : 04.03.2012 в 21:54:36 пользователем: valuta » Зарегистрирован

coolberg
[Ядрёна-Матрёна]
Прирожденный Джаец






Пол:
Репутация: +138
Re: Наука и религия в исходниках НО.
« Ответ #206 от 05.03.2012 в 01:10:15 »

2valuta: насколько я помню, среднее арифметическое бралось только в том случае, когда кондиция оружия меньше меткости стрелка, в остальных случаях за базовый шанс бралась просто меткость. Поэтому для неандертальца шанс так и будет ноль, если я ничего не путаю.
Зарегистрирован

valuta
Псих

Я люблю этот Форум!




Пол:
Репутация: ---
Re: Наука и религия в исходниках НО.
« Ответ #207 от 05.03.2012 в 05:40:10 »

2coolberg: Да нет, еще раз глянул, именно среднеарифметическое. Неандерталец очень опасен.
Зарегистрирован

valuta
Псих

Я люблю этот Форум!




Пол:
Репутация: ---
Re: Наука и религия в исходниках НО.
« Ответ #208 от 08.03.2012 в 04:31:19 »

2coolberg: Однако вы сударь правы.
Тем не менее среднеарифметическое не есть гуд. Это величины вероятностные, соотв. надо перемножать/делить, а не складывать/пополамить.
Зарегистрирован

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Наука и религия в исходниках НО.
« Ответ #209 от 08.03.2012 в 07:37:02 »

2valuta:  
 
"Сударь" - уничижит. или шутлив.-иронич. сокращение от "Милостивый государь". В общении с незнакомыми или малознакомыми - недопустимо. (Для свед. - Множ. числа не имеет.)
 
Как на счет приближения функции вероятности эллиптическими?  
 
Это ведь не просто суммы, но суммы с условиями - т.е. кус.-лин. аппроксимация заметно более сложных непрерывных зависимостей. А вот "куркулируются" такие зависимости заметно быстрее (на порядки быстрее) функциональных зависимостей. Банан по выч. мат... Фтопку идеи!
 
Ведь игре при просчете этихпля функций надо еще анимации крутить...
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
valuta
Псих

Я люблю этот Форум!




Пол:
Репутация: ---
Re: Наука и религия в исходниках НО.
« Ответ #210 от 08.03.2012 в 09:22:14 »

2Bonarienz:  
 
О как !?!? : rolleyes : Бум знать.
 
Может быть и так. Разница в расчетах будет существенна, лишь случаях использования практически неисправного ствола. Чего в игре не бывает.
Можно забить.
Зарегистрирован

Seven
[Голос Америки]

Прирожденный Джаец




WWW

Пол:
Репутация: +351
Re: Наука и религия в исходниках НО.
« Ответ #211 от 26.05.2016 в 16:00:44 »

Нашел только эту тему про исходники.
Вопрос специалистам, вот есть в НО 1.2 такой код:
 
Quote:
SOLDIERCLASS * FindSoldierByProfileID( UINT8 ubProfileID, BOOLEAN fPlayerMercsOnly )
{
 UINT8 ubLoop, ubLoopLimit;
 SOLDIERCLASS * pSoldier;
 
 if (fPlayerMercsOnly)
 {
  ubLoopLimit = gTacticalStatus.Team[0].bLastID;
 }
 else
 {
  ubLoopLimit = MAX_NUM_SOLDIERS;
 }
 
 for (ubLoop = 0, pSoldier = MercPtrs[0]; ubLoop < ubLoopLimit; ubLoop++, pSoldier++)
 {
  if (pSoldier->bActive && pSoldier->ubProfile == ubProfileID)
  {
   return( pSoldier );
  }
 }
 return( NULL );
}

 
bLastID = это максимальный возможный ID для команды (то есть, солдат с таким ID может реально существовать).
MAX_NUM_SOLDIERS - это значение, на 1 больше максимально возможного ID солдата в игре (для команды цивилов последний ID равен MAX_NUM_SOLDIERS - 1).
 
В итоге, цикл, проверяющий ubLoop < ubLoopLimit будет корректно работать для всех случаев, кроме случая, когда ищется последний ID для команды игрока.
Зарегистрирован

Сборки 1.13 | Ja2+AI | Youtube | VK
Терапевт
[Кулибин]
Кардинал


Народный целитель. Шарлатан высшей категории.




Пол:
Репутация: +1187
Re: Наука и религия в исходниках НО.
« Ответ #212 от 31.05.2016 в 14:42:29 »

2Seven:  
Данная историческая ошибка теоретически чревата лишь какими-то глюками с транспортом игрока при наличии сразу двух машин. Например, NPC не сможет заправить вторую машину, если есть квест с такой реакцией. Причём она такая не единственная, есть ещё.
Зарегистрирован

Весна! Я уже не грею пиво! (с) В.Цой
Seven
[Голос Америки]

Прирожденный Джаец




WWW

Пол:
Репутация: +351
Re: Наука и религия в исходниках НО.
« Ответ #213 от 14.07.2017 в 20:44:24 »

Вопрос знатокам.
 
В функции UseGun есть такой вызов:
FireBulletGivenTarget( pSoldier, dTargetX, dTargetY, dTargetZ, pSoldier->usAttackingWeapon, (UINT16) (uiHitChance - uiDiceRoll), fBuckshot, FALSE );
При этом FireBulletGivenTarget определена в LOS.h как  
INT8 FireBulletGivenTarget( SOLDIERCLASS * pFirer, FLOAT dEndX, FLOAT dEndY, FLOAT dEndZ, UINT16 usHandItem, INT16 sHitBy, BOOLEAN fBuckshot, BOOLEAN fFake );
Для чего (uiHitChance - uiDiceRoll) преобразуется в UINT16, если передавать нужно INT16, причем отрицательное значение имеет смысл и означает величину промаха?
 
Например, вызов CalculateLaunchItemParamsForThrow в UseThrown производится корректно, с преобразованием в INT8:
 
CalculateLaunchItemParamsForThrow( pSoldier, sTargetGridNo, pSoldier->bTargetLevel, (INT16)(pSoldier->bTargetLevel * 256 ), &(pSoldier->inv[ HANDPOS ] ), (INT8)(uiDiceRoll - uiHitChance), THROW_ARM_ITEM, 0 );
« Изменён в : 14.07.2017 в 21:06:00 пользователем: Seven » Зарегистрирован

Сборки 1.13 | Ja2+AI | Youtube | VK
Терапевт
[Кулибин]
Кардинал


Народный целитель. Шарлатан высшей категории.




Пол:
Репутация: +1187
Re: Наука и религия в исходниках НО.
« Ответ #214 от 21.07.2017 в 15:34:42 »

14.07.2017 в 20:44:24, Seven писал(a):
Для чего (uiHitChance - uiDiceRoll) преобразуется в UINT16, если передавать нужно INT16, причем отрицательное значение имеет смысл и означает величину промаха?

Хотя по логическому смыслу это неправильно, но в данном случае не имеет значения к знаковому или беззнаковому типу происходит преобразование, главное, что к двухбайтовому, подходящему по размеру. Целое отрицательное число хранится, как положительное больше 32767. Например, -1 будет храниться, как 65535; -2, как 65534 и т.п. Таким образом знак числа при передаче в функцию не теряется, и все вычисления внутри выполняются корректно.
Зарегистрирован

Весна! Я уже не грею пиво! (с) В.Цой
Seven
[Голос Америки]

Прирожденный Джаец




WWW

Пол:
Репутация: +351
Re: Наука и религия в исходниках НО.
« Ответ #215 от 21.07.2017 в 21:54:13 »

2Терапевт:  
А вот еще из исходников НО 1.2:
В UseGun():
Вычисляем шанс попасть:
Quote:
uiHitChance = CalcChanceToHitGun( pSoldier, sTargetGridNo, pSoldier->bAimTime, pSoldier->bAimShotLocation );

Затем случайное число:
Quote:
// ROLL DICE
uiDiceRoll = PreRandom( 100 );

Если uiDiceRoll <= uiHitChance, то это попадание, то есть пуля полетит точно в цель.
Quote:
fGonnaHit = uiDiceRoll <= uiHitChance;

и передается в FireBulletGivenTarget(  как sHitBy параметр:
Quote:
FireBulletGivenTarget( pSoldier, dTargetX, dTargetY, dTargetZ, pSoldier->usAttackingWeapon, (UINT16) (uiHitChance - uiDiceRoll), fBuckshot, FALSE );

Если sHitBy >=0, то это попадание.
Получается, что при вычисленном шансе попасть uiHitChance = 0, есть 1% вероятность реального попадания (uiDiceRoll = 0, 0<=0).
При вычисленном шансе uiHitChance = 1%, реальный шанс попасть будет 2% (0<=1, 1<=1).
 
Ванильный баг в AI функции SearchForItems:
Quote:
case ARMOURCLASS_VEST:
 if (pSoldier->inv[VESTPOS].usItem == NOTHING)
 {
  iTempValue = 200 + EffectiveArmour( pObj );
 }
 else if ( EffectiveArmour( &(pSoldier->inv[HELMETPOS]) ) > EffectiveArmour( pObj ) )
 {
  iTempValue = 100 * EffectiveArmour( pObj ) / EffectiveArmour( &(pSoldier->inv[VESTPOS]) );
 }
 else
 {
  iTempValue = 0;
 }
 break;

Проверяем жилетку, а сравниваем броню поднимаемого объекта с броней шапки:
Quote:
else if ( EffectiveArmour( &(pSoldier->inv[HELMETPOS]) ) > EffectiveArmour( pObj ) )

Аналогично и со штанами.
Кроме того, EffectiveArmour() при определенных условиях может вернуть 0, что приведет к предсказуемым последствиям:
Quote:
INT8 EffectiveArmour( OBJECTTYPE * pObj )
{
 INT32  iValue;
 INT8  bPlate;
 
 if (pObj == NULL || Item[pObj->usItem].usItemClass != IC_ARMOUR)
 {
  return( 0 );
 }
...
}
Зарегистрирован

Сборки 1.13 | Ja2+AI | Youtube | VK
Терапевт
[Кулибин]
Кардинал


Народный целитель. Шарлатан высшей категории.




Пол:
Репутация: +1187
Re: Наука и религия в исходниках НО.
« Ответ #216 от 22.07.2017 в 00:12:43 »

21.07.2017 в 21:54:13, Seven писал(a):
Ванильный баг в AI функции SearchForItems:

В НО боты не ищут броню. Ищут только оружие и патроны.
Зарегистрирован

Весна! Я уже не грею пиво! (с) В.Цой
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: Наука и религия в исходниках НО.
« Ответ #217 от 22.07.2017 в 01:52:33 »

2Терапевт:  
 
Как же так? С Барреттом и голой жопой - впирёт на фрагА?!. Нипарядык!
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Seven
[Голос Америки]

Прирожденный Джаец




WWW

Пол:
Репутация: +351
Re: Наука и религия в исходниках НО.
« Ответ #218 от 30.08.2017 в 10:52:53 »

В CreatureDecideActionBlack()
Quote:
// DIGGLER ON   21.11.2010  
// Теперь у нас 2 процедуры на каждый случай жизни
#ifdef NEW_AI_STRUCT
 if ( gfTurnBasedAI || (gTacticalStatus.uiFlags & TURNBASED) )
  return(DecideActionRedTB(pSoldier,FALSE));
 else  
  return(DecideActionRedRT(pSoldier,FALSE));
#else
return(DecideActionRed(pSoldier,FALSE));
#endif
// DIGGLER OFF

Разве тут не должно вызываться CreatureDecideActionRed?
Зарегистрирован

Сборки 1.13 | Ja2+AI | Youtube | VK
Терапевт
[Кулибин]
Кардинал


Народный целитель. Шарлатан высшей категории.




Пол:
Репутация: +1187
Re: Наука и религия в исходниках НО.
« Ответ #219 от 30.08.2017 в 23:27:28 »

Наверно да, но с оригинала идёт именно так.
Зарегистрирован

Весна! Я уже не грею пиво! (с) В.Цой
Seven
[Голос Америки]

Прирожденный Джаец




WWW

Пол:
Репутация: +351
Re: Наука и религия в исходниках НО.
« Ответ #220 от 30.08.2017 в 23:34:14 »

2Терапевт:  
Судя по всему, это просто неудачная копипаста из DecideAction.c - там есть ровно такой же код - если единственный доступный для атаки противник умирает, ищем нормального и если находим, будем через Red AI к нему добираться, так как в Black AI нет поиска противника. То есть скопировать скопировали, а имя функции поменять забыли.
Зарегистрирован

Сборки 1.13 | Ja2+AI | Youtube | VK
Seven
[Голос Америки]

Прирожденный Джаец




WWW

Пол:
Репутация: +351
Re: Наука и религия в исходниках НО.
« Ответ #221 от 19.12.2017 в 18:31:33 »

Еще один ванильный баг в 1.2:
 
FindLocations.c
Quote:
UINT8 NumberOfTeamMatesAdjacent( SOLDIERCLASS * pSoldier, INT16 sGridNo )
{
 UINT8 ubLoop, ubCount, ubWhoIsThere;
 INT16 sTempGridNo;
 
 ubCount = 0;
 
 for( ubLoop = 0; ubLoop < NUM_WORLD_DIRECTIONS; ubLoop++ )
 {
  sTempGridNo = NewGridNo( sGridNo, DirectionInc( ubLoop ) );
  if ( sTempGridNo != sGridNo )
  {
   ubWhoIsThere = WhoIsThere2( sGridNo, pSoldier->bLevel );
   if ( ubWhoIsThere != NOBODY && ubWhoIsThere != pSoldier->ubID && MercPtrs[ ubWhoIsThere ]->bTeam == pSoldier->bTeam )
   {
    ubCount++;
   }
  }
 }
 
 return( ubCount );
}

 
Должно быть:
Quote:
ubWhoIsThere = WhoIsThere2( sTempGridNo, pSoldier->bLevel );

 
Из-за этого бага еще с оригинала не работает антискучивание в FindBestNearbyCover:
Quote:
iCurrentCoverValue -= (iCurrentCoverValue / 10) * NumberOfTeamMatesAdjacent( pSoldier, pSoldier->sGridNo );
...
iCoverValue -= (iCoverValue / 10) * NumberOfTeamMatesAdjacent( pSoldier, sGridNo );
Зарегистрирован

Сборки 1.13 | Ja2+AI | Youtube | VK
Seven
[Голос Америки]

Прирожденный Джаец




WWW

Пол:
Репутация: +351
Re: Наука и религия в исходниках НО.
« Ответ #222 от 29.10.2018 в 21:26:25 »

Ванильный баг в 1.2:  
 
opplist.c, HearNoise()
 
Quote:
if (ubVolume >= pSoldier->ubNoiseVolume)
{
 // yes it is, so remember this noise INSTEAD (old noise is forgotten)
 pSoldier->sNoiseGridno = sGridNo;
 pSoldier->bNoiseLevel = bLevel;
 
 // no matter how loud noise was, don't remember it for than 12 turns!
 if (ubVolume < MAX_MISC_NOISE_DURATION)
 {
  pSoldier->ubNoiseVolume = ubVolume;
 }
 else
 {
  pSoldier->ubNoiseVolume = MAX_MISC_NOISE_DURATION;
 }
 
 SetNewSituation( pSoldier );  // force a fresh AI decision to be made
}
Зарегистрирован

Сборки 1.13 | Ja2+AI | Youtube | VK
Терапевт
[Кулибин]
Кардинал


Народный целитель. Шарлатан высшей категории.




Пол:
Репутация: +1187
Re: Наука и религия в исходниках НО.
« Ответ #223 от 30.10.2018 в 13:33:00 »

2Seven:  
И в чём он выражается?
Зарегистрирован

Весна! Я уже не грею пиво! (с) В.Цой
Seven
[Голос Америки]

Прирожденный Джаец




WWW

Пол:
Репутация: +351
Re: Наука и религия в исходниках НО.
« Ответ #224 от 30.10.2018 в 13:36:47 »

2Терапевт:  
MAX_MISC_NOISE_DURATION = 12
ubVolume - громкость, может быть до 100 и больше.
В существующем виде AI запоминает не самый громкий звук (и самый важный, как следствие), а просто любой последний громче минимального уровня в 12, что приводит к некорректному поведению AI.
Зарегистрирован

Сборки 1.13 | Ja2+AI | Youtube | VK
Терапевт
[Кулибин]
Кардинал


Народный целитель. Шарлатан высшей категории.




Пол:
Репутация: +1187
Re: Наука и религия в исходниках НО.
« Ответ #225 от 30.10.2018 в 16:57:46 »

2Seven:  
Понятно. Я бы сказал, что это не баг, а субъективный взгляд на данную примитивную линейную нормализацию величины. Ведь самый громкий звук необязательно будет самым важным. По крайней мере в случаях, когда игрок нападает на вражеский сектор.
Зарегистрирован

Весна! Я уже не грею пиво! (с) В.Цой
Seven
[Голос Америки]

Прирожденный Джаец




WWW

Пол:
Репутация: +351
Re: Наука и религия в исходниках НО.
« Ответ #226 от 10.11.2018 в 19:29:15 »

Ванильный баг в 1.2
 
Quote:
// set values for the tiles EXITED from this location
FORCE_SET_MOVEMENTCOST( usGridNo - WORLD_COLS, NORTH, 0, TRAVELCOST_NONE );
SET_MOVEMENTCOST( usGridNo - WORLD_COLS + 1, NORTHEAST, 0, TRAVELCOST_OBSTACLE );
SET_MOVEMENTCOST( usGridNo + 1, EAST, 0, TRAVELCOST_OBSTACLE );
SET_MOVEMENTCOST( usGridNo + WORLD_COLS + 1, SOUTHEAST, 0, TRAVELCOST_OBSTACLE );
FORCE_SET_MOVEMENTCOST( usGridNo + WORLD_COLS, SOUTH, 0, TRAVELCOST_NONE );
SET_MOVEMENTCOST( usGridNo + WORLD_COLS - 1, SOUTHWEST, 0, TRAVELCOST_OBSTACLE );
SET_MOVEMENTCOST( usGridNo - 1, WEST, 0, TRAVELCOST_OBSTACLE );
SET_MOVEMENTCOST( usGridNo - WORLD_COLS - 1, NORTHWEST, 0, TRAVELCOST_OBSTACLE );

Должно быть
Quote:
// set values for the tiles EXITED from this location
if (gubWorldMovementCosts[usGridNo - WORLD_COLS][NORTH][0] < TRAVELCOST_BLOCKED)
 FORCE_SET_MOVEMENTCOST(usGridNo - WORLD_COLS, NORTH, 0, TRAVELCOST_NONE);
ET_MOVEMENTCOST( usGridNo - WORLD_COLS + 1, NORTHEAST, 0, TRAVELCOST_OBSTACLE );
SET_MOVEMENTCOST( usGridNo + 1, EAST, 0, TRAVELCOST_OBSTACLE );
SET_MOVEMENTCOST( usGridNo + WORLD_COLS + 1, SOUTHEAST, 0, TRAVELCOST_OBSTACLE );
if (gubWorldMovementCosts[usGridNo + WORLD_COLS][SOUTH][0] < TRAVELCOST_BLOCKED)
 FORCE_SET_MOVEMENTCOST(usGridNo + WORLD_COLS, SOUTH, 0, TRAVELCOST_NONE);
SET_MOVEMENTCOST( usGridNo + WORLD_COLS - 1, SOUTHWEST, 0, TRAVELCOST_OBSTACLE );
SET_MOVEMENTCOST( usGridNo - 1, WEST, 0, TRAVELCOST_OBSTACLE );
SET_MOVEMENTCOST( usGridNo - WORLD_COLS - 1, NORTHWEST, 0, TRAVELCOST_OBSTACLE );

Лечит подвисание AI при попытке перепрыгнуть в северном направлении забор, за которым расположен непроходимый объект.
Зарегистрирован

Сборки 1.13 | Ja2+AI | Youtube | VK
Страниц: 1     « Открыть сокрытое! » Послать Тему Послать Тему Печатать Печатать

« Предыдущая Тема | Следующая Тема »

Статистика. Размер данных: 675034 GZip: off
A.I.M. » Powered by YaBB Modification 4 (v.4.0.0-pre)!
YaBB © 2000-2003. All Rights Reserved.