XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
Sidhe
Unity3D engine
offline
Опыт: 7,721
Активность:
Проверка размера юнита
собственно сабж

пример:
есть много событий, которые увеличивают размер юнита и уменьшают. Нужно как то зделать проверку, какой в данный момент % от основного роста. (что то вроде стаков)

к примеру цикличное событие (таймер)
i++
SetUnitScalePercent(u, 100+i, 100+i, 100+i)

юнит увеличился на n%, а при следующем запуске таймера, нужно чтобы размер увеличился еще больше, но тут проблема - начинает повышаться сначала, а не с данного % увеличения
Старый 11.03.2012, 12:43
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
Храни в хеше текущее значение масштабирования и изменяй запись при изменении оного
Например
...
local real r
...
call SaveReal(udg_Hash,GetHandleId(u),StringHash("UnitScale"),1.)
...
set r=LoadReal(udg_Hash,GetHandleId(u),StringHash("UnitScale"))+0.01
call SetUnitScale(u,r,r,r)
call SaveReal(udg_Hash,GetHandleId(u),StringHash("UnitScale"),r)
...
Старый 11.03.2012, 12:50
Sidhe
Unity3D engine
offline
Опыт: 7,721
Активность:
Nerevar, это то понятно, но другой триггер (или событие) вернет из хеша значение null
Старый 11.03.2012, 13:09
ScorpioT1000
Работаем
offline
Опыт: отключен
проверяй на нулл и пиши туда единицу, делов то.
Старый 11.03.2012, 13:18
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
Вернет оно все
Изначально(не знаю когда тебе надо) - записываешь значение для каждого юнита в хеш командой
call SaveReal(udg_Hash,GetHandleId(u),StringHash("UnitScale"),1.)
Так оно запишет начальный масштаб=100%
Затем когда надо выгружаешь значение из хэша командой
set r=LoadReal(udg_Hash,GetHandleId(u),StringHash("UnitScale"))+0.01
И тут же увеличиваешь масштаб на 1%,затем масштабируешь юнита согласно значению
call SetUnitScale(u,r,r,r)
Затем сохраняешь измененное значение в хэш
call SaveReal(udg_Hash,GetHandleId(u),StringHash("UnitScale"),r)
Any questions?
Старый 11.03.2012, 13:18
Sidhe
Unity3D engine
offline
Опыт: 7,721
Активность:
спасибо за советы. НО через хеш все таки не то

зделал по своему и заработало

можно закрыть
Старый 11.03.2012, 21:39
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 21:32.