Показать сообщение отдельно
Старый 28.03.2013, 19:59
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 3  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Не в строке дело. Я уже сто раз проверял эти сроки. Блин, даже не знаю как объяснить..
Сама строка после первоначального разбиения выглядит так:
h-23:0 или так m-0:0 (m = missed)
в первой h означает hit (удар), далее уровень повреждения, а последнее число это индекс жертвы в массиве жертв. Эта строка передается в конструктор класса Hit, в котором все раскладывается по полочкам. Все эти объекты hit попадают в общий массив ударов для сценария боя. А далее берется первый удар, проверяется кто его нанес, к этому персонажу добавляется слушатель завершения удара и дается команда идти и нанести удар. Он идет, наносит удар, при этом "использованный" объект Hit вырезается из массива простым _hits.shift();
И в качестве действующего удара опять назначается удар, находящийся на нулевом индексе. И все сначала. Вроде бы все должно быть ок. Но вот время от времени объекты hit относящиеся к первому персонажу заканчиваются, а здоровье у него не на нуле. И в этот момент оба перса тупо останавливаются и ничего больше не делают.
Уже и на свой серверный алгоритм грешил, может там что не верно. Брал калькулятор, просчитывал все показатели, по всему должен был бы сдохнуть, а нет, жив.

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