[ВАЖНО] Помощь по JASS
|
|
NmLs | Дата: Четверг, 11 Марта 2010, 20:31:30 | Сообщение # 276 |
3 уровень
Группа: Заблокированные
Сообщений: 67
Награды: 0
Репутация: 8
Блокировки:
| Quote Не понял. Зачем что то исключать. Ну если, предположим, у меня карта в стиле доты\аоса, то получается каждого "новорожденного" юнита мы добавляем в события. Со временем их накапливается очень много там, и по-идее игра будет тормозить. Систему гляну, спасибо.
Остерегайся вещей, наделенных разумом. Кто знает, что у них на уме... ©
|
|
|
|
DoctorGester | Дата: Четверг, 11 Марта 2010, 20:57:48 | Сообщение # 277 |
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
| Скорее всего да. Тормоза будут. Но это легко исправляется пересозданием тригера и чисткой событий.
|
|
|
|
NmLs | Дата: Пятница, 12 Марта 2010, 12:11:04 | Сообщение # 278 |
3 уровень
Группа: Заблокированные
Сообщений: 67
Награды: 0
Репутация: 8
Блокировки:
| Quote Но это легко исправляется пересозданием тригера и чисткой событий. Вот я и спрашиваю - как их делать?
Остерегайся вещей, наделенных разумом. Кто знает, что у них на уме... ©
|
|
|
|
DoctorGester | Дата: Пятница, 12 Марта 2010, 13:01:00 | Сообщение # 279 |
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
| Не помню но что то вроде TriggerClearActions/conditions/events
|
|
|
|
Svyaga | Дата: Пятница, 12 Марта 2010, 16:00:21 | Сообщение # 280 |
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
| Quote (DoctorGester) Не помню но что то вроде TriggerClearActions/conditions/events Есть только очищение действий и условий, очищения событий нет.
|
|
|
|
NmLs | Дата: Пятница, 12 Марта 2010, 16:47:53 | Сообщение # 281 |
3 уровень
Группа: Заблокированные
Сообщений: 67
Награды: 0
Репутация: 8
Блокировки:
| Quote Есть только очищение действий и условий, очищения событий нет. А как тогда быть?
Остерегайся вещей, наделенных разумом. Кто знает, что у них на уме... ©
|
|
|
|
Svyaga | Дата: Пятница, 12 Марта 2010, 17:01:23 | Сообщение # 282 |
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
| Quote (NmLs) А как тогда быть? Вместо удаления событий можно добавлять/убирать юнита из группы. Т.е. добавлять когда надо чтоб триггер сработал, и затем убрать, чтобы он не задействовался когда не надо. И получится "если юнит в группе то триггер задействуется, если нет, то нет"
|
|
|
|
DoctorGester | Дата: Пятница, 12 Марта 2010, 17:52:19 | Сообщение # 283 |
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
| Не верно. События накапливаются. Нужно удалить тригер и почистить действия и условия а потом создать заново не забывая добавить удаленное обратно.
|
|
|
|
Svyaga | Дата: Пятница, 12 Марта 2010, 17:58:23 | Сообщение # 284 |
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
| DoctorGester, при окончании его действия и правда можно сделать ресет (ResetTrigger), но не удаление) Кста, NmLs, а у тя добавляются в тот триг только события, или действия и условия тоже?
Сообщение отредактировал Svyaga - Пятница, 12 Марта 2010, 17:58:53 |
|
|
|
NmLs | Дата: Пятница, 12 Марта 2010, 18:09:39 | Сообщение # 285 |
3 уровень
Группа: Заблокированные
Сообщений: 67
Награды: 0
Репутация: 8
Блокировки:
| Quote Вместо удаления событий можно добавлять/убирать юнита из группы. Т.е. добавлять когда надо чтоб триггер сработал, и затем убрать, чтобы он не задействовался когда не надо. И получится "если юнит в группе то триггер задействуется, если нет, то нет" А как это реализовать-то? Событие "юнит получает урон" не работает для generic unit event. Только для specific unit event. Пробовал туда подставлять событие - пишет ошибку.
Остерегайся вещей, наделенных разумом. Кто знает, что у них на уме... ©
|
|
|
|
Svyaga | Дата: Пятница, 12 Марта 2010, 18:11:02 | Сообщение # 286 |
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
| Quote (NmLs) А как это реализовать-то? Событие "юнит получает урон" не работает для generic unit event. Только для specific unit event. Пробовал туда подставлять событие - пишет ошибку. Надо сделать либо периодический триггер, к-ый добавляет всех юнитов, либо, если это возможно в твоём спелле, добавлять тех, кто попадает под действие спелла.
|
|
|
|
NmLs | Дата: Пятница, 12 Марта 2010, 18:13:06 | Сообщение # 287 |
3 уровень
Группа: Заблокированные
Сообщений: 67
Награды: 0
Репутация: 8
Блокировки:
| Quote а у тя добавляются в тот триг только события, или действия и условия тоже? Только события. Нужно отслеживать наносят ли какому-либо юниту урон юниты с определенным баффом. Извините за мультипост.
Остерегайся вещей, наделенных разумом. Кто знает, что у них на уме... ©
|
|
|
|
DoctorGester | Дата: Пятница, 12 Марта 2010, 18:13:06 | Сообщение # 288 |
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
| Смотри систему же
|
|
|
|
Svyaga | Дата: Пятница, 12 Марта 2010, 18:17:24 | Сообщение # 289 |
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
| Quote Допустим юнит A кастует спелл на юнитов B C D и так далее. При этом весь урон нанесенный юнитами B C D плюсуется и сохраняется в переменную. DoctorGester, не заметил слова "допустим"? NmLs, в триг спелла поставь чтоб добавлялось событие на тех самых юнитов B C D. И запости твой спелл, будем разбираться, так как может получиться так, что из-за ресета трига спелл не будет муи
Сообщение отредактировал Svyaga - Пятница, 12 Марта 2010, 18:18:23 |
|
|
|
NmLs | Дата: Пятница, 12 Марта 2010, 18:22:17 | Сообщение # 290 |
3 уровень
Группа: Заблокированные
Сообщений: 67
Награды: 0
Репутация: 8
Блокировки:
| Quote NmLs, в триг спелла поставь чтоб добавлялось событие на тех самых юнитов B C D. Дык а как отследить кому и сколько урона наносят эти самые B C D? На сколько я понимаю, есть команды только для отслеживания полученного урона?
Остерегайся вещей, наделенных разумом. Кто знает, что у них на уме... ©
|
|
|
|
Svyaga | Дата: Пятница, 12 Марта 2010, 18:24:18 | Сообщение # 291 |
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
| Quote (NmLs) Дык а как отследить кому и сколько урона наносят эти самые B C D? На сколько я понимаю, есть команды только для отслеживания полученного урона? Это уже отдельно триг надо делать, и для отслеживания урона - GetEventDamage. Это и будет кол-во нанесённого урона.
|
|
|
|
DoctorGester | Дата: Пятница, 12 Марта 2010, 18:33:36 | Сообщение # 292 |
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
| Я выше опять же дал все функции по теме. Зачем каждый раз ресет делать? Достаточно раз в 5 минут.
|
|
|
|
NmLs | Дата: Пятница, 12 Марта 2010, 18:34:18 | Сообщение # 293 |
3 уровень
Группа: Заблокированные
Сообщений: 67
Награды: 0
Репутация: 8
Блокировки:
| Quote Это уже отдельно триг надо делать, и для отслеживания урона - GetEventDamage. Это и будет кол-во нанесённого урона. Вообщем я запутался. Можно мне мини пример в виде небольшой карты? Я попробую адаптировать под свою ситуацию и выложу результат.
Остерегайся вещей, наделенных разумом. Кто знает, что у них на уме... ©
|
|
|
|
Svyaga | Дата: Пятница, 12 Марта 2010, 18:39:17 | Сообщение # 294 |
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
| Quote (DoctorGester) Я выше опять же дал все функции по теме. Ну не понял человек ё-моё, я и пояснил Да и что значит "опять же"?) Quote (DoctorGester) Зачем каждый раз ресет делать? Достаточно раз в 5 минут. С 1 стороны правда, а с другой, если спелл задействуется не моментально, и сделать очистку каждые 5 минут, то будет шанс что спелл не будет срабатывать. Поясняю: Срабатывает спелл --> добавляются события --> очищается тригг до того как должен сработать спелл --> спелл не сработал. Так что нужно подобрать определённый момент для очистки. И поэтому попросил спелл выложить, чтобы можно было такой момент подобрать.
|
|
|
|
DoctorGester | Дата: Пятница, 12 Марта 2010, 18:42:00 | Сообщение # 295 |
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
| Да да я знаю. Ну... Можно делать это во время каких то пауз в игре.
|
|
|
|
Svyaga | Дата: Пятница, 12 Марта 2010, 18:44:19 | Сообщение # 296 |
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
| Quote (DoctorGester) Ну... Можно делать это во время каких то пауз в игре. Если таковые будут. Повторюсь, что пока не будет выложен спелл, либо не будет хотябы пояснено что спелл делает и как именно работает, то смысла обсуждать ресет нет
|
|
|
|
NmLs | Дата: Пятница, 12 Марта 2010, 18:52:51 | Сообщение # 297 |
3 уровень
Группа: Заблокированные
Сообщений: 67
Награды: 0
Репутация: 8
Блокировки:
| Quote Повторюсь, что пока не будет выложен спелл, либо не будет хотябы пояснено что спелл делает и как именно работает, то смысла обсуждать ресет нет Ок, попробую описать максимально подробно. Есть AoE спелл. Владелец спелла накладывает его на определенную область, и все юниты в этой области на время получают бафф. Пока эти юниты под баффом, весь урон который они нанесли любым юнитам (в т.ч. себе) суммируется и складывается в переменную. Затем число HP равное числу в этой переменной прибавляется юниту кастанувшему спелл. Причем таких юнитов может быть несколько.
Остерегайся вещей, наделенных разумом. Кто знает, что у них на уме... ©
|
|
|
|
Svyaga | Дата: Пятница, 12 Марта 2010, 18:55:48 | Сообщение # 298 |
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
| NmLs, Можно сделать триггер, который каждую минуту (или даже чаще) будет проверять, есть ли на карте кто-нибудь с таким баффом, и если нет, то очищать события (через вышеупомянутый ResetTrigger)
|
|
|
|
NmLs | Дата: Пятница, 12 Марта 2010, 20:51:09 | Сообщение # 299 |
3 уровень
Группа: Заблокированные
Сообщений: 67
Награды: 0
Репутация: 8
Блокировки:
| В общем попробовал сделать, но ничего не получилось, ибо некоторые вещи так и не понял как сделать. Вот наработка, посмотрите пожалуйста. http://www.4shared.com/file/239813852/bfe80a44/_jass_dunno.html
Остерегайся вещей, наделенных разумом. Кто знает, что у них на уме... ©
|
|
|
|
DoctorGester | Дата: Пятница, 12 Марта 2010, 21:02:06 | Сообщение # 300 |
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
| Выложи код
|
|
|
|