Eraston
aka's CHLSN
offline
Опыт:
1,600Активность: |
Запуск периодического события
В общем, кто скажет, как написать такую штуку:
При подборе предмета запускается периодический таймер (скажем секунд 1320.), который будет добавлять заряд этому предмету? |
27.08.2011, 23:34 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Gudfree
гуи (V)_( Oo )_(V)
offline
Опыт:
8,233Активность: |
триггерами Учи основы |
27.08.2011, 23:52 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Eraston
aka's CHLSN
offline
Опыт:
1,600Активность: |
xak12, ты умный?
Юнит получает предмет > Создать триггер, добавить событие "каждые Х секунд", добавить действие "добавить заряд предмету I" = всё. Но есть в этом способе одно но: события не удаляются, если по 100500 раз поднять и выложить предмет, то вар повиснет. Поэтому и спрашиваю, как это сделать по-другому. |
28.08.2011, 00:35 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Velociraptor
В пространстве и времени
offline
Опыт:
14,801Активность: |
Ну ставь нужные тебе условия на триггер, чтобы события на каждый предмет добавлялись только один раз...
|
28.08.2011, 00:40 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Eraston
aka's CHLSN
offline
Опыт:
1,600Активность: |
Velociraptor, эмм.. Снова не дописал.. Смысл в общем в том, что заряды предмет получает только если находится у героя, но проверять у каждого героя все 6 слотов на мой взгляд слишком затратно, особенно, если период идет, допустим, до 60 секунд.
Цитата:
|
|
28.08.2011, 00:53 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
Eraston, хэш с локальными таймерами тебе в помощь.. |
28.08.2011, 00:54 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AsagiriGen
щпаовапа
offline
Опыт:
2,853Активность: |
Создай переменную, возьми ее за колличество зарядов, и прибавляй...
|
28.08.2011, 00:54 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Eraston
aka's CHLSN
offline
Опыт:
1,600Активность: |
Vampirrr, а так получится?:
Создаем один таймер. В хеш по хендлу таймера в 0 заносим количество предметов данного типа в игре. Далее каждые Х секунд проверяем все занесенные в хеш по хендлу таймера предметы (начиная с 1 до значения в 0). В этот же хеш по хендлу таймера в ячейку с номером хендла предмета заносим состояние предмета (у героя/не у героя (true/false)). |
28.08.2011, 00:59 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
Eraston, эм, ну как бы я хз, как ты будешь делать это:
Да и вообще, есть такие функции как
и
А что бы количество предметов сохранить, нужна всего 1 глобальная переменная. Ну а если ты будешь делать через 1 переодический триггер, то хэш тут нафиг ненужен - юзай массивы. |
28.08.2011, 01:13 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Eraston
aka's CHLSN
offline
Опыт:
1,600Активность: |
Vampirrr:
В этом случае заряды будут даваться даже в том случае, если предмет не у героя. Vampirrr:
Нужно проверять в худшем случае 72 слота...для компа немного, но все равно не слишком оптимизировано. Vampirrr:
Вообще-то я предложил вариант с хешем по той причине, что таких предметов будет несколько, а написать одну функцию гораздо легче и проще, чем создавать глобальный массив, и потом разбираться где там что. |
28.08.2011, 01:25 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
Eraston:
Я там не вижу передаваемого параметра "слот".. Сейчас не могу проверить, как именно эта функция работает, но по логике она тебе вернет тру, если у юнита есть айтем и пофигу в каком слоте. Eraston:
Вообще-то параллельные массивы ничем не хуже хэша. Для удобства есть VJass в котором можно использовать структуры. Да и вообще, не пойму в чем проблема. Вариантов куча и они ограничены лишь воображением.. Отредактировано Vampirrr, 28.08.2011 в 01:47. |
28.08.2011, 01:36 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Eraston
aka's CHLSN
offline
Опыт:
1,600Активность: |
|
28.08.2011, 01:54 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
|
28.08.2011, 01:58 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|