Триггеры
|
|
Norm | Дата: Понедельник, 15.06.2009, 21:51 | Сообщение # 1 |
Bowman
Группа: Проверенные
Сообщений: 16
| Здесь задаём вопросы по триггерам Снизу будут несколько триггеров дабы не задавать лишних вопросов 1.Самая простая таблица рекордов 2.Показывает сколько урона нанёс определённый юнит 3.Чтобы крипы бежали как в доте 4.Чтобы предметы скрещивались как в доте 5.Таймер воскрешения героев По мере пополнения сайта буду выкладывать более сложные примеры а также различные наработки Не задавайте вопрос который прежде был задан и получил ответ, не ленитесь читать предыдущие посты.
|
|
| |
KLOP | Дата: Вторник, 04.08.2009, 08:49 | Сообщение # 51 |
Гражданин
Группа: Пользователи
Сообщений: 62
| ну так там всё правельно сделанно и алгоритм правельный
|
|
| |
MeSSiaH | Дата: Вторник, 04.08.2009, 08:49 | Сообщение # 52 |
Крепостной
Группа: Пользователи
Сообщений: 20
| а, во, сделал через переменную и итем беинг манипулейтед вместо вуда в каждой строчке... хотя в прошлый раз так же делал не работало
|
|
| |
Druid | Дата: Вторник, 04.08.2009, 22:24 | Сообщение # 53 |
Гражданин
Группа: Проверенные
Сообщений: 71
| 1 вопрос, что означает етот тригер ? О_О
|
|
| |
KLOP | Дата: Вторник, 04.08.2009, 22:32 | Сообщение # 54 |
Гражданин
Группа: Пользователи
Сообщений: 62
| Druid, ПРи потере предмета выдаёт сообщение что предмет выпал или потерян
|
|
| |
[DUOS] | Дата: Вторник, 04.08.2009, 23:06 | Сообщение # 55 |
Придворный
Группа: Проверенные
Сообщений: 352
| Как сделать правильно системку, в которой будет проверяться наличие юнита в области? Если он один, то нужно запускать таймер, показать его окно, а по его истечении скрыть окно и телепортнуть союзников и владельца вошедшего юнита на базу, а врагов - на их базу. Если юнита в области 2, то играть звук и паузить таймер, не скрывая окно, до тех пор, пока в области не останется один юнит. Если вошедший юнит умрёт ДО истечения таймера, то таймер сбрасывается, а окно таймера скрывается. Поставлю + сделавшему.
Привет, меня зовут Рой. Я тут немножко подсел на магию... (© Чародей Крови) За Кель-Таллас! Oasis and Desert Ландшафт - 100% Триггеры и кодинг - 5% Герои - 4% Итого - 36%
|
|
| |
KLOP | Дата: Среда, 05.08.2009, 01:13 | Сообщение # 56 |
Гражданин
Группа: Пользователи
Сообщений: 62
| [DUOS], http://dump.ru/file/3172433 Добавлено (05.08.2009, 01:13) --------------------------------------------- ах да забыл коечто сделать))добавь там где TImerEnd в самом конце такое действие Обратный отсчёт-Destroy timer window и переменную Timerwindow укажи,а с каждым разом добавляться будет окно таймера и будет по 3 4 их)))
|
|
| |
JLopDHy6oB | Дата: Вторник, 01.09.2009, 13:39 | Сообщение # 57 |
Новосёл
Группа: Пользователи
Сообщений: 14
| У мну есть вопрос по поводу новых действий и вапще что представляет сабой Хеш-таблица и если ли на них руссификатор???(Кто незнает,хеш-таблицы появились в патче 1.24)
|
|
| |
Spirit | Дата: Вторник, 01.09.2009, 15:41 | Сообщение # 58 |
Irony of Truth: The Last War
Гражданин
Группа: Проверенные
Сообщений: 66
Репутация: 1
Награды
| JLopDHy6oB, русификатора нет,если надо - пиши сам... хэш - альтернатива кэшу,но быстрее за счёт того,что в роли ключей там выступают интегеры в отличие от кэша(там строки)
|
|
| |
JLopDHy6oB | Дата: Вторник, 01.09.2009, 17:36 | Сообщение # 59 |
Новосёл
Группа: Пользователи
Сообщений: 14
| Спирит спс!Жалко русика нет=(
|
|
| |
Spirit | Дата: Вторник, 01.09.2009, 17:38 | Сообщение # 60 |
Irony of Truth: The Last War
Гражданин
Группа: Проверенные
Сообщений: 66
Репутация: 1
Награды
| JLopDHy6oB, переведи новый TriggerString.txt с функциями хэша и радуйся
|
|
| |
JLopDHy6oB | Дата: Вторник, 01.09.2009, 17:44 | Сообщение # 61 |
Новосёл
Группа: Пользователи
Сообщений: 14
| Знал бы чо писать может быть и перевел=)
|
|
| |
Spirit | Дата: Вторник, 01.09.2009, 17:56 | Сообщение # 62 |
Irony of Truth: The Last War
Гражданин
Группа: Проверенные
Сообщений: 66
Репутация: 1
Награды
| Почищен последний оффтоп^^
|
|
| |
JLopDHy6oB | Дата: Вторник, 01.09.2009, 17:57 | Сообщение # 63 |
Новосёл
Группа: Пользователи
Сообщений: 14
| =) Добавлено (01.09.2009, 17:57) --------------------------------------------- спирит а ты можешь перевести тригеры??? ![biggrin](http://s28.ucoz.net/sm/1/biggrin.gif)
|
|
| |
Spirit | Дата: Вторник, 01.09.2009, 18:34 | Сообщение # 64 |
Irony of Truth: The Last War
Гражданин
Группа: Проверенные
Сообщений: 66
Репутация: 1
Награды
| JLopDHy6oB, могу то могу,но времени нету
|
|
| |
Makc | Дата: Воскресенье, 11.10.2009, 10:46 | Сообщение # 65 |
Крепостной
Группа: Пользователи
Сообщений: 36
| У меня вопрос... как сделать чтобы конкретный мультибоард показывался для конкретного игрока..? Ведь действия "Показать (Последний Multiboard) для игрока" нету..
|
|
| |
Meck | Дата: Воскресенье, 11.10.2009, 15:45 | Сообщение # 66 |
Начальник
Группа: Проверенные
Сообщений: 131
Репутация: 0
Награды
| Makc, Code function Multibord takes nothing returns nothing local integer i = 0 loop exitwhen i == 12 if GetLocalPlayer() == Player(i) then call MultiboardDisplay(Multiboard[i], true) endif set i=i+1 endloop endfunction В тригерах такого несделаеш, только джас.
|
|
| |
Makc | Дата: Понедельник, 12.10.2009, 11:16 | Сообщение # 67 |
Крепостной
Группа: Пользователи
Сообщений: 36
| Окей... сейчас попробую... Line 126: Expected a name call MultiboardDisplay(Multiboard[i], true) Я в джасе новичок поэтому непонимаю чо значит эта ошибка) что я сделал не так?
Сообщение отредактировал Makc - Понедельник, 12.10.2009, 11:32 |
|
| |
[DUOS] | Дата: Понедельник, 12.10.2009, 17:00 | Сообщение # 68 |
Придворный
Группа: Проверенные
Сообщений: 352
| Makc, Используй мою функцию ShowMultiboardForPlayer: Code function ShowMultiboardForPlayer takes multiboard mb, player whichPlayer, boolean show returns nothing if(GetLocalPlayer() == whichPlayer) then call MultiboardDisplay(mb,show) else endif endfunction
Привет, меня зовут Рой. Я тут немножко подсел на магию... (© Чародей Крови) За Кель-Таллас! Oasis and Desert Ландшафт - 100% Триггеры и кодинг - 5% Герои - 4% Итого - 36%
|
|
| |
Makc | Дата: Понедельник, 12.10.2009, 18:02 | Сообщение # 69 |
Крепостной
Группа: Пользователи
Сообщений: 36
| Эм...) И как она работает?) У меня есть 2 (пока что) переменных мультибоарда PlayerMultiBoard массивная 15 раз и мне надо чтобы PlayerMultiBoard[1] показывалась для красного PlayerMultiBoard[2] для синего и т.д)
|
|
| |
[DUOS] | Дата: Понедельник, 12.10.2009, 18:24 | Сообщение # 70 |
Придворный
Группа: Проверенные
Сообщений: 352
| Quote (Makc) У меня есть 2 (пока что) переменных мультибоарда PlayerMultiBoard массивная 15 раз и мне надо чтобы PlayerMultiBoard[1] показывалась для красного PlayerMultiBoard[2] для синего и т.д) 1) Вставляешь в код мою функцию. 2) Пишешь в том месте кода, где надо показать доску: call ShowMultiboardForPlayer(udg_PlayerMultiBoard[1],Player(0)) call ShowMultiboardForPlayer(udg_PlayerMultiBoard[2],Player(1)) И.т.д.
Привет, меня зовут Рой. Я тут немножко подсел на магию... (© Чародей Крови) За Кель-Таллас! Oasis and Desert Ландшафт - 100% Триггеры и кодинг - 5% Герои - 4% Итого - 36%
|
|
| |
Makc | Дата: Понедельник, 12.10.2009, 19:32 | Сообщение # 71 |
Крепостной
Группа: Пользователи
Сообщений: 36
| Блин((( Неполучается( Code function Trig_ShowMultiboardForPlayer_Actions takes nothing returns nothing endfunction
//=========================================================================== function InitTrig_ShowMultiboardForPlayer takes nothing returns nothing set gg_trg_ShowMultiboardForPlayer = CreateTrigger( ) call TriggerAddAction( gg_trg_ShowMultiboardForPlayer, function Trig_ShowMultiboardForPlayer_Actions ) endfunction
function ShowMultiboardForPlayer takes multiboard mb, player whichPlayer, boolean show returns nothing if(GetLocalPlayer() == whichPlayer) then call ShowMultiboardForPlayer(udg_PlayerMultiboard[1],Player(0)) call ShowMultiboardForPlayer(udg_PlayerMultiboard[2],Player(1)) call ShowMultiboardForPlayer(udg_PlayerMultiboard[3],Player(2)) call ShowMultiboardForPlayer(udg_PlayerMultiboard[4],Player(3)) call ShowMultiboardForPlayer(udg_PlayerMultiboard[5],Player(4)) call ShowMultiboardForPlayer(udg_PlayerMultiboard[6],Player(5)) call ShowMultiboardForPlayer(udg_PlayerMultiboard[7],Player(6)) call ShowMultiboardForPlayer(udg_PlayerMultiboard[8],Player(7)) call ShowMultiboardForPlayer(udg_PlayerMultiboard[9],Player(8)) call ShowMultiboardForPlayer(udg_PlayerMultiboard[10],Player(9)) else
endif endfunction Это то что у меня получилось.. Выдает ошибку Invalid number of arguments. Что я опять не так сделал?)
Сообщение отредактировал Makc - Понедельник, 12.10.2009, 19:33 |
|
| |
[DUOS] | Дата: Вторник, 13.10.2009, 18:25 | Сообщение # 72 |
Придворный
Группа: Проверенные
Сообщений: 352
| Makc, Code function Trig_ShowMultiboardForPlayer_Actions takes nothing returns nothing local integer i = 0 loop exitwhen i > 9 if(GetLocalPlayer() == Player(i)) then call MultiboardDisplay(udg_PlayerMultiboard[i+1],true) else endif set i = i + 1 endloop endfunction //=========================================================================== function InitTrig_ShowMultiboardForPlayer takes nothing returns nothing local trigger tr = CreateTrigger() call TriggerRegisterTimerEvent(tr, 0.01, false) call TriggerAddAction(gg_trg_ShowMultiboardForPlayer, function Trig_ShowMultiboardForPlayer_Actions) set tr = null endfunction Вот, держи и учись
Привет, меня зовут Рой. Я тут немножко подсел на магию... (© Чародей Крови) За Кель-Таллас! Oasis and Desert Ландшафт - 100% Триггеры и кодинг - 5% Герои - 4% Итого - 36%
|
|
| |
Makc | Дата: Пятница, 30.10.2009, 19:06 | Сообщение # 73 |
Крепостной
Группа: Пользователи
Сообщений: 36
| У меня есть 2 ещё 2 вопроса по триггерам) 1. Я задаю рандомное число от 1 до 8, но всё равно боты берут каждый раз одинаковых геров. Только синий иногда скелета берет. Остальные берут одних и тех же. В чом ошибка? 2. В триггере где боты должны юзать спеллы когда их\они атакуют, но почемуто не юзают( http://ifolder.ru/14755238 посмотрите плз в категории Bots P.S Ну во втором вопросе мб там есть какая-то ошибкка но в 1 случае я непонимаю(
Сообщение отредактировал Makc - Пятница, 30.10.2009, 20:58 |
|
| |
Meck | Дата: Суббота, 31.10.2009, 12:17 | Сообщение # 74 |
Начальник
Группа: Проверенные
Сообщений: 131
Репутация: 0
Награды
| Makc, твой первый случай проблемный на самом деле, я сам с трудом додумался до решения данного вопроса, но повел за собой много утечек, значит вариант был таков, я сделал маленьку териториюб в виде квадрата гдето 5х5, натянул на эту тереторию область и при старте игры создавал всех героев карты и каждые пол секунды их двигал из стороны в сторону, тоесть по рандомной точке на этой области и когда я прописывал мод, тобиш он у меня был "-ar" то каждый раз брался другой герой, тоесть метод рандомного числа срабатывает по стандартным этапам, а у меня все зависило от того когда будет прописан мод и чем чаще ты будеш двигать юнитов тем будет больший щанс на рандомного игрока, правда все создаваемые точки нужно удалять, тоесть точки на которые ты двигаеш юнитов. Второй твой случай немогу посмотреть, но предпологаю что когда ты атакуш юнита то у него смешиваються разные команды, пересмотри все команды которые ты даеш боту при том когда его и он атакует, команды могут перебивать друг друга и в итоге бот будет стоять на месте незная что ему делать. P.S. сейчас немогу скачать твою мапу и немогу сделать пример.
|
|
| |
Makc | Дата: Суббота, 31.10.2009, 16:39 | Сообщение # 75 |
Крепостной
Группа: Пользователи
Сообщений: 36
| Насчет первого случая я так и не понял что ты мне сказал, если честно) Если можешь, напиши более понятными словами) А насчет второго я и сам непонимаю... может при атаке сделать команду ждать 1 сек?
|
|
| |