Показать сообщение отдельно
Старый 17.08.2009, 14:46   #780
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,229
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

а предусмотрена ли какая-либо команда переиндексации массива?
например - предположим на бота сагрилось 3 моба. приоритет стоит сперва их отпинать, а потом собрать с земли, все что с них посыпалось.
предположим выпало 4 вещи бот аккуратно все записал в массив.
id[1] = 12312312; id[2] = 15316317; id[3] = 12322222; id[4] = 1111111;
и начинает побирать. подобрал допустим вещь под номером 2
в этот момент на него агрица еще один моб - бот бросает сборку дропа - начинает оборонятся, с этого моба еще падает дроп - бот запишет его под индексом 5. а как сделать реиндексацию, типа - когда бот поднял вещь под номером 2 - массив сдвинулся по индексам назад на единичку. то есть 1 остался 1, 3 стал 2, 4 стал 3 и так далее. чтобы выпавший предмет бот записал не как 5 предмет, а как четвертый
иначе бот начнет собирать дроп - соберет до 2 позиции и повиснет - 2 индекс то у нас уже нулевой, или просто уже не существует.

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

Последний раз редактировалось SeregaZ, 17.08.2009 в 14:49.
SeregaZ вне форума   Ответить с цитированием