![]()
DKIcekeeper
Кол6асня!!!
![]() ![]() offline
Опыт:
1,243Активность: |
Запарка с 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. Потому как если умрет сначала один герой, а потом следом за ним умрет второй герой, то для первого триггер дальше не будет работать. Помогите пожалуйстааа!!! |
![]() |
#1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
FellGuard
Losyash
![]() ![]() offline
Опыт:
39,547Активность: |
мне кажется нужно проиндексировать всех героев игрока и вешать линк на игрока, а не на тригге, если уж так нужен кэш) Вообще много разных вариантов, но использование кеша себя не оправдывает в ряде случаев, гораздо практичнее работать с глобальными массивами |
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DKIcekeeper
Кол6асня!!!
![]() ![]() offline
Опыт:
1,243Активность: |
Понятно. Тогда такой вопрос, а можно ли записать в кэш глобалку с массивом?? |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
FellGuard
Losyash
![]() ![]() offline
Опыт:
39,547Активность: |
глобалка с массивом аналог кешу, ее не надо туда записывать)) кстати свои значения глобальный массив будет хранить и после загрузки карты читай статьи |
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Harakternyk
![]() ![]() offline
Опыт:
2,703Активность: |
FellGuard, именно поэтому (я выражаю солидарность
![]() 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. |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DKIcekeeper
Кол6асня!!!
![]() ![]() offline
Опыт:
1,243Активность: |
Все понял! Всем Большое спасибо! Тему Close |
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|