|
•Причина тут. - 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
Просьба исправить. |
|
| |