DKIcekeeper
Кол6асня!!!
offline
Опыт:
443Активность: |
Запарка с SCV!!!
Народ хелп ми! Я кароч запарился с кэшем и всей этой лабудой!
Кароч суть вопроса в том что, Герой умирает, создается копия (юнит с моделью умирающего героя, за нейтралов и со способностью москиты!) героя на том месте где должен воскреснуть герой по истечении таймера. Таймер заканчивается копия удаляется, а вместо копии появляется герой. Надеюсь не грузанул Так вот, для одного игрока все прекрасно работает, а для нескольких нифига! Я знаю в чем проблема, но не могу её решить. начинается триггер local unit Hero = GetDyingUnit() local unit HeroAnim потом на HeroAnim создается юнит далее call SetHandleInteger(Trigger, "Hero", H2I(Hero)) call SetHandleInteger(Trigger, "Unit"+I2S(GetUnitTypeId(Hero)), H2I(HeroAnim)) потом идет триггер с циклом в 1 секунду. и local unit Hero = GetHandleUnit(Trigger, "Hero") local unit HeroAnim = GetHandleUnit(Trigger, "Unit"+I2S(GetUnitTypeId(Hero))) Так вот вся проблема в том что HeroAnim ссылается на Hero, а я не знаю "на какой объект" поставить ссылку для Hero. Потому как если умрет сначала один герой, а потом следом за ним умрет второй герой, то для первого триггер дальше не будет работать. Помогите пожалуйстааа!!! |
30.12.2007, 21:08 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
мне кажется нужно проиндексировать всех героев игрока и вешать линк на игрока, а не на тригге, если уж так нужен кэш) Вообще много разных вариантов, но использование кеша себя не оправдывает в ряде случаев, гораздо практичнее работать с глобальными массивами |
30.12.2007, 21:21 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DKIcekeeper
Кол6асня!!!
offline
Опыт:
443Активность: |
Понятно. Тогда такой вопрос, а можно ли записать в кэш глобалку с массивом?? |
30.12.2007, 21:25 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
глобалка с массивом аналог кешу, ее не надо туда записывать)) кстати свои значения глобальный массив будет хранить и после загрузки карты читай статьи |
30.12.2007, 22:14 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Harakternyk
offline
Опыт:
2,703Активность: |
FellGuard, именно поэтому (я выражаю солидарность), стоит избегать в подобных случаях SCV, а использовать специально предназначенные для этого средства - глобальным переменные, их массивы и функции, решающие конкретные задачи. Считаю, что SCV работает медленнее, хотя иногда им пользоваться потребность возникает, но это больше исключение.
DKIcekeeper, такие задачи ефективнее решать без SCV, используя функцию для воскрешения героя, а также функцию "спасения" юнита (см. вложение к этому посту). Вот, что сказал Сергей по поводу создания массивов с помощью SCV (я не стал ничего выдумывать, ибо приведённая цитата даст тебе полный ответ и сыкономит мне время ). » Цитата (см.) Вы можете использовать данную систему для того, чтобы сопоставлять объектам массивы чисел или других объектов! К примеру, можно создать цикл вида: --- For i=1 to n call set_object_iparam(o, name+I2S(i), value) --- Это позволит создать для объекта o записи "имя1", "имя2" ... "имяn", что по сути является массивом. Точно также вы можете прочесть значения элементов из массива: set udg_i = udg_i + get_object_iparam(o, name+I2S(n)) - прочесть n-ый элемент массива. Кроме того, вы можете использовать систему, SCV, чтобы создавать любое количество новых переменных и массивов с любым названием прямо по ходу игры! Переменная отличается от cv только тем, что переменная не сопоставлена никаким игровым объектам. Поэтому, если в качестве объекта вы выберите пустой объект null, по сути вы создадите переменную. call set_object_iparam(null, name, value) - создать переменную get_object_iparam(null, name) - получить значение переменной Подробнее - см. пример из триггера Test2. Отредактировано Harakternyk, 30.12.2007 в 22:36. |
30.12.2007, 22:24 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DKIcekeeper
Кол6асня!!!
offline
Опыт:
443Активность: |
Все понял! Всем Большое спасибо! Тему Close |
31.12.2007, 14:30 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|