M.A.X.    Вы вошли как гость
Российский Клуб игроков M.A.X.
 
[Новости]   [Новичку]   [Энциклопедия]   [Документы]   [Файлы]   [Игроки]   [Архивы]   [Архив форума]  
[Новый сайт]   [M.A.X. Gold]   [Партии]  

 
 
 
Архив форума  МаксГолд
[Основной форум] [Голосования] [МаксГолд] [Off-Topic]
 


Причина тут.  -  Hruks,  10.08.2010  10:59:57

В функции mainloop_setmoves неверно идёт расчёт оставшихся выстрелов.
Дело в том, что при выстрелах cur.speed и так уменьшается.
Соответственно не нужно дополнительно вычитать shootusd из рассчитанного параметра.
То есть строка 784 (примерно) должны быть:
    if not mg_sys.realtimedbg then if (not mg_sys.unitsdb[u.dbn].firemov)and(u.bas.shoot>0)and(u.bas.speed>0) then u.cur.shoot:=max2i(trunc(((u.cur.speed/10)/(u.bas.speed/u.bas.shoot))),0);
Проверил, похоже в таком варианте всё работает.

Параметр shootusd используется ещё в 2х местах совершенно аналогично.
Соответсвенно его нужно убрать и там.
Учитывая, что этот параметр больше вообще не используется, то просьба вообще убрать этот параметр.
Если он вдруг сильно понадобится, то его можно получить вычислением: u.bas.shoot-u.cur.shoot

Просьба исправить.