JET_LI
offline
Опыт:
1,724Активность: |
Создание триггера и добавление в него действия
Я покажу пример, что я хочу сделать:
у мну есть триггер, в котором событие "Юнит умирает", далее идёт действие, если умер "медведь", то создать предмет, а именно ид его: 'I01P' и потом в локальную переменную присуждается значение, например, переменная "itm" и её значение = GetLastCreatedItem(). Потом должен создаться триггер, в начале перед всеми действиями идёт локальная переменная "trg", тип её "trigger" а начальное значение "CreateTrigger()". Вот когда создался предмет 'I01P', должно в триггер "trg" добавится действие, а именно: "RemoveItem(itm)". Скажите как это сделать, вот у мну есть заготовка, но дальше не могу чё-то! Плиз если так нельзя, то сделайте по другому, но чтобы было всё рационально! Заранее спасибо!!! Вот заготовка: Код:
|
16.03.2009, 12:55 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,707Активность: |
Код:
Как-то так. |
16.03.2009, 13:29 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JET_LI
offline
Опыт:
1,724Активность: |
Ой!! Я забыл самое важное сказать Hellfim ты уже знаешь к чему эта вся ведётся целЬ)))).
Помнишь ты мне тригер помог написать на сложение зарядов предмета I01P и ограничение. Ну вот а я юнит который в этом триггере умирает в условие - это медведь, типо после него остаётся мясо и т п... Должен создоватсья предмет I01P то есть та самая пища и к ней сделать случайнные заряды от 6 до 24. Но если так будет продолжаться без удаление предмета, то карта будет вся в этих предметах, что очень не удобно!!! Вот я и хотел сделать чтобы через 15 сек предмет удалялся, но не хочу использовать глобалки. У мну есть идея, я смотрел подобные задачи как написали в доте, они там использовали локальный буффер!!! Может быть ты мне вместо глобалок сделаешь локальный буффер, плииз. Ты же сам понимаешь, если с глобалками, то это получается неверно, вот например один юнит убил медведя и тут же другой убивает медведя и что у нас получается?? У нас получается что один предмет останется а другой исчезнет! Можно впринципе использовать массив, но это уже громоздко. Плииз придумай! JET_LI добавил: Аааааааа, погодь вот в блоке globals, это что ли своеобразный блок для создания переменных, доступные во всём, именно в этом триггере?? JET_LI добавил: То есть,я так понял что при работы этого триггера каждый раз создаются новый ряд этих переменных, то есть как и локальные и потом они так же удаляются когда триггер заканчивает свою работу, так? JET_LI добавил: значит у мну ошибки не будет? если один юнит убил медведь и потом тут же второй. Все предметы в свое нужное время удалятся да? |
16.03.2009, 13:43 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,707Активность: |
JET_LI, что такое локальный буфер яхз =) Блок
Код:
Доступен только в JNPG. Я бы сделал так: Код:
|
16.03.2009, 13:56 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JET_LI
offline
Опыт:
1,724Активность: |
Слушай ты думаешь это правильно запускать цикл на 8191!
Комп случайно не сойдёт с ума))))???? JET_LI добавил: А что такое DS?? ты в название переменной использовал зачем это?? объясни плиииз JET_LI добавил: или просто такое название переменной?? и не чё больше? JET_LI добавил: и кст для чего цикл на 8191??? JET_LI добавил: и ещё вопрос правдо не по теме но ответь плиз: есть такая штука GetHandleTimer() и как с ней работать я забыл покажи просто пример например создать юнита и по таймеру его перемещать. |
16.03.2009, 14:04 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,707Активность: |
JET_LI, сойдет... Из-за моей криворукости я сделал кривой код. Вот держи нормальный.
» CODE Код:
DS это сокращение от DeadSet можно назвать как угодно, но так 100% имя не повторится. Цикл до 8191 т.к. это последний элемент цикла. Про GetHandleTimer() забудь. Это scv, оно очень медленно, но если хочешь, то можешь почитать статью сергей про Jass. Там глава называется RB+Cache. |
16.03.2009, 16:00 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JET_LI
offline
Опыт:
1,724Активность: |
Смотри я сделал проще!
Код:
Ну как?)) Не надо не чё мудрить)Ыть |
16.03.2009, 16:23 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,707Активность: |
JET_LI, после убийства медведя игра ставится на паузу и по истечении 15 секунд(во время паузы) мясо пропадает, но впринципе неплохо =)
|
16.03.2009, 16:33 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|