Сейчас 23:36:58 Понедельник, 30 декабря, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: PUVer, SirNikolas, Ty3uK  
[ВАЖНО] Помощь по 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
Блокировки:
Выложи код
 

Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz