Gareth Emery
Passive Progressive^^
offline
Опыт:
9,874Активность: |
Несколько вопросов по триггерам
Сейчас делаю триггерам ИИ компьютеру. Так вот возникло пару вопросов:
|
08.03.2008, 10:58 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nethrez1m
Dat av doe
offline
Опыт:
2,123Активность: |
|
08.03.2008, 11:22 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Gareth Emery
Passive Progressive^^
offline
Опыт:
9,874Активность: |
Можно это наглядно как-то показать? |
08.03.2008, 11:26 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
sleepw
offline
Опыт:
8,449Активность: |
1.
периодик ивент.. поделить например области на лвлы тобишь например уровень компа меньше 5 ходит идти качацо в такуюто область есьо больше в такуюто.. ну тут массу идей можно придумать.. смотря как и что у тебя устроено:) sleepw добавил: Festert открой карту Angel Arena,любую... там есть самый обычный лидербоард |
08.03.2008, 11:27 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Gareth Emery
Passive Progressive^^
offline
Опыт:
9,874Активность: |
Да, карта поделена на области, но вот просто я не знаю какими действиями "отправлять" туда компьютера. Мне нужны примерчики :) Какое нужно действие тут не могу найти что-то: Событие: Боевая единица повышает уровень Условие: Hero Level of Triggering Unit больше или равно 5 Действия: ??? |
08.03.2008, 11:37 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nethrez1m
Dat av doe
offline
Опыт:
2,123Активность: |
Событие - Generic Unit Event - Unit Dies Условие - Boolean Comparison - Unit type of (Dying Unit) не равно Герой Действие - Set Variable - Kills[(Player Number(Get Owning Player (Killing Unit)))] = Arithmetic ( Kills[(Player Number(Get Owning Player (Killing Unit)))] + 1 ) Триггер обновления лидерборда. Нужна глобальная переменная, скажем LB_Kills (тип - Доска Лидерства).
Событие - Periodic Event - Every (XX) seconds Действие - Loop - For each A from 1 to 12 Leaderboard - ConvertPlayerNumber(A) text for (LB_Kills) to Convert Integer to String (Kills[A]) endloop Триггер создания лидерборда.
Событие - Time Elapsed (0.05 secs) Действие - Leaderboard - CreateLeaderboard with title (Kills) Set variable - Set LB_Kills = (Last Created Leaderboard) Действие - Loop - For each A from 1 to 12 Leaderboard - Add ConvertPlayerNumber(A) to (LB_Kills) endloop Leaderboard - Set Item Style for (LB_Kills) to (Hide Icons) and (Show text) P.S. пишу по памяти, так что вероятны ошибки. Но общий смысл правильный. |
08.03.2008, 11:39 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
sleepw
offline
Опыт:
8,449Активность: |
Festert
нед.. щас сек настрочу шото. |
08.03.2008, 11:43 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
YellowStar
poon
offline
Опыт:
15,144Активность: |
sleepw
Переодическое событие тупо. Лучше тупо добавить к тригеру действия с триггера ( щас скажу как точно это пишеться ) при инилизации и не заморачиваться. Плюс если тебе надо чтобы в зависимости от уровня ходил. На гуи проверяй уровень и если уровень равен 1-5 то топай сюда если 5-10 то сюда если 10-15 то сюда. Делается в один триггер без всяких переодических действий. ( Триггер > add to trigger queue ) вот такая вроде функция поможет отменить переодическое событие. |
08.03.2008, 12:05 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
emperio
offline
Опыт:
185Активность: |
народ подскажите есть условие "отряд в радиусе" вместо мне юнита надо поставить переменную, а никакая преременная не ставится ЧЁ ДЕЛАТЬ???? |
08.03.2008, 12:18 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nethrez1m
Dat av doe
offline
Опыт:
2,123Активность: |
emperio, лучше создавать новую тему. по вопросу:
создай первый триггер, без событий, но с теми действиями, которые бы ты хотел провести с отрядом, входящим в радиус. во втором триггере, там где определяется необходимая переменная, после её объявления добавь функцию: "Trigger - Add Action (Unit in range) to (Trigger1)". В этой функции уже можно использовать переменные. Учти, что после такого добавления триггерно это событие уже не удалить. Поэтому, если это событие должно быть однократным, юзай Jass. Статьи Sergey'я есть в оффлайн базе. |
08.03.2008, 12:41 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
sleepw
offline
Опыт:
8,449Активность: |
х3 вот шото типа такого:)
мегоаи ^_^ sleepw добавил: emperio я непонял шо ты написал О_О |
08.03.2008, 13:04 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Gareth Emery
Passive Progressive^^
offline
Опыт:
9,874Активность: |
Спасибо за примерчики, очень помогло. Теперь только вот не подскажете кто-нибудь как сделать чтобы компьютер бегал по локации в поисках мобов, а не стоял посреди Center Of Region. |
08.03.2008, 15:08 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
sleepw
offline
Опыт:
8,449Активность: |
ну сморя как у тя там.. если такие же как в примере группки мобов то просто занести области этих группок в массив отослать его в одну область если он там всех перебил и бить больше некого рандомом выбрать одну из массива где есть мобы и отослать тудо:) |
08.03.2008, 15:17 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Gareth Emery
Passive Progressive^^
offline
Опыт:
9,874Активность: |
У меня чуть по-другому: область большая, компьютер убивает всех мобов в поле зрения и потом тупо стоит посреди области :(( |
08.03.2008, 15:20 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hexus
Looking for a victim
offline
Опыт:
19,166Активность: |
Код:
Примерно так |
08.03.2008, 15:21 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nethrez1m
Dat av doe
offline
Опыт:
2,123Активность: |
Цитата:
кошмар.. откуда Attacking Unit в Periodic событии |
|
08.03.2008, 15:24 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hexus
Looking for a victim
offline
Опыт:
19,166Активность: |
Проверка. твой вариант? |
08.03.2008, 15:27 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
sleepw
offline
Опыт:
8,449Активность: |
Festert
мб попробовать периодом пикать юнитов в поле зрения героя еси количество пикед юнитов( мечинг кондишн там враги например ) =0 то отослать кудато там.. хотя лучше было бы и прикольней поделить мобов по областям если они у тя не двигаютсЯ) |
08.03.2008, 15:28 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nethrez1m
Dat av doe
offline
Опыт:
2,123Активность: |
Мой вариант - запускать таймеры для групп юнитов. Проверять наличие приказа "attack" у капитана группы (отдельный юнит внутри группы, аттачим его к таймеру). Если такого приказа нет, то есть группа добралась до места назначения, перебив всех по пути - дать новый приказ Order (unitgroup) перейти, нападая на врагов (random point in (region)) |
08.03.2008, 15:33 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Gareth Emery
Passive Progressive^^
offline
Опыт:
9,874Активность: |
Вот такой респаун мобов я использую и вот так тупит компьютер когда идет на кач (стоит в центре области и ничего не делает). Посмотрите, может кто-то исправит это в примере. Мне надо чтобы он бегал по локации, а он стоит :( |
08.03.2008, 16:54 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|