|
|
|
|
[Вопрос] Помогите с триггером
|
|
beril | Дата: Четверг, 06 Декабря 2012, 20:28:40 | Сообщение # 1 |
7 уровень
Группа: Проверенные
Сообщений: 282
Награды: 0
Репутация: 139
Блокировки:
| В общем не могу понять почему именно так, возможно что то не так делаю Вот функция Code loop exitwhen GetTimeOfDay() == 16.00
call TriggerSleepAction(6.00) set d = GetRandomInt(1,6) call TriggerSleepAction(7.00) if d == 1 then // call CreateTextTagUnitBJ( "Фуг устал уже", udg_L_Unit[i], 82.00, 8.00, 50.00, 50.00, 100, 0 ) set n = GetLastCreatedTextTag() else endif if d == 2 then // call CreateTextTagUnitBJ( "Отдохнуть бы чуток", udg_L_Unit[i], 82.00, 8.00, 50.00, 50.00, 100, 0 ) set n = GetLastCreatedTextTag() else endif if d == 3 then // call CreateTextTagUnitBJ( "Спина уже побаливает", udg_L_Unit[i], 82.00, 8.00, 50.00, 50.00, 100, 0 ) set n = GetLastCreatedTextTag() else endif if d == 4 then // call CreateTextTagUnitBJ( "Яйца вспотели уже от работы", udg_L_Unit[i], 82.00, 8.00, 50.00, 50.00, 100, 0 ) set n = GetLastCreatedTextTag() else endif if d == 5 then // call CreateTextTagUnitBJ( "Мозоли уже натер", udg_L_Unit[i], 82.00, 8.00, 50.00, 50.00, 100, 0 ) set n = GetLastCreatedTextTag() else endif if d == 6 then // call CreateTextTagUnitBJ( "(Свистит)....", udg_L_Unit[i], 82.00, 8.00, 50.00, 50.00, 100, 0 ) set n = GetLastCreatedTextTag() else endif call TriggerSleepAction(3.80) call DestroyTextTag(n) call TriggerSleepAction(10.00) endloop Почему выводится тексттаг одновременно несколько разных фраз, а именно 3 раза подряд
|
|
|
|
lawson | Дата: Четверг, 06 Декабря 2012, 21:10:52 | Сообщение # 2 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| beril, хммм Quote (beril) call TriggerSleepAction(6.00) Quote (beril) call TriggerSleepAction(7.00) Quote (beril) call TriggerSleepAction(3.80) Quote (beril) call TriggerSleepAction(10.00) вроде все должно работать, хмм
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
beril | Дата: Четверг, 06 Декабря 2012, 21:15:16 | Сообщение # 3 |
7 уровень
Группа: Проверенные
Сообщений: 282
Награды: 0
Репутация: 139
Блокировки:
| Да вот и я так думаю ) Что все правильно, но выводится сразу 3 тексттага. Да и вообще в loop когда вставляешь действие какоето оно почему то 3 раза подряд проигрывается
|
|
|
|
[SeKtOR] | Дата: Четверг, 06 Декабря 2012, 21:15:53 | Сообщение # 4 |
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
| Code loop exitwhen GetFloatGameState(GAME_STATE_TIME_OF_DAY) == 16.00 call TriggerSleepAction(6.00) // Вейт 3: set d = GetRandomInt(1,6) call TriggerSleepAction(7.00) // Вейт 3: set textt = CreateTextTag() // local texttag textt if(d == 1) then call SetTextTagText(textt, "Фуг устал уже", .0184) // 8. * 0.23 / 10 elseif(d == 2) then call SetTextTagText(textt, "Отдохнуть бы чуток", .0184) // etc elseif(d == 3) then call SetTextTagText(textt, "Спина уже побаливает", .0184) elseif(d == 4) then call SetTextTagText(textt, "Яйца вспотели уже от работы", .0184) elseif(d == 5) then call SetTextTagText(textt, "Мозоли уже натер", .0184) elseif(d == 6) then call SetTextTagText(textt, "(Свистит)....", .0184) else call SetTextTagText(textt, "Фуг устал уже", .0184) endif call SetTextTagPosUnit(textt, udg_L_Unit[i], 82.) call SetTextTagColor(tt, 127.5, 127.5, 255., 255.) // (percent * 255) * 0.01 call TriggerSleepAction(3.80) // Вейт 3: call DestroyTextTag(textt) call TriggerSleepAction(10.00) // Вейт 3: set textt = null endloop чуток оптимизации
|
|
|
|
beril | Дата: Четверг, 06 Декабря 2012, 21:20:30 | Сообщение # 5 |
7 уровень
Группа: Проверенные
Сообщений: 282
Награды: 0
Репутация: 139
Блокировки:
| сектор спс, но всеравно так же. ) А может быть это из за того, что функция в cs карты ? И вообще влияет как то то (на производителльность или загрузку), что в cs карты много функций ? Или лучше в триггерах это все делать Code call SetTextTagColor(n, 127.00, 127.00, 255.00, 255.00) // (percent * 255) * 0.01 Пишит ошибку Неверный тип аргумента(real)
Сообщение отредактировал beril - Четверг, 06 Декабря 2012, 21:28:23 |
|
|
|
[SeKtOR] | Дата: Четверг, 06 Декабря 2012, 22:19:13 | Сообщение # 6 |
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
| Quote (beril) сектор спс, но всеравно так же.) Code call SetTextTagColor(n, 127.00, 127.00, 255.00, 255.00) // (percent * 255) * 0.01
Пишит ошибку Неверный тип аргумента(real) Я сделал только оптимизиацию. Quote call SetTextTagColor(n, 127.00, 127.00, 255.00, 255.00) на Quote call SetTextTagColor(n, 127, 127, 255, 255) Quote (beril) И вообще влияет как то то (на производителльность или загрузку), что в cs карты много функций ? Или лучше в триггерах это все делать Нет, т.к. весь код помещается в war3map.j и где ты его напишешь, это только для твоего удобства(вот способ написания это другой разговор)
Сообщение отредактировал [SeKtOR] - Четверг, 06 Декабря 2012, 22:19:38 |
|
|
|
Ty3uK | Дата: Четверг, 06 Декабря 2012, 22:44:24 | Сообщение # 7 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Quote (beril) И вообще влияет как то то (на производителльность или загрузку), что в cs карты много функций ? На это влияет то, что ты в цикле используешь TriggerSleepAction
|
|
|
|
beril | Дата: Четверг, 06 Декабря 2012, 23:24:11 | Сообщение # 8 |
7 уровень
Группа: Проверенные
Сообщений: 282
Награды: 0
Репутация: 139
Блокировки:
| Quote (Ty3uK) На это влияет то, что ты в цикле используешь TriggerSleepAction buba А как по другому ?? Через таймеры ?
|
|
|
|
Ty3uK | Дата: Пятница, 07 Декабря 2012, 09:16:47 | Сообщение # 9 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Конечно
|
|
|
|
beril | Дата: Суббота, 08 Декабря 2012, 21:09:07 | Сообщение # 10 |
7 уровень
Группа: Проверенные
Сообщений: 282
Награды: 0
Репутация: 139
Блокировки:
| Но все равно проблема не решилась, выводитсразу несколько текст тагов
Сообщение отредактировал beril - Суббота, 08 Декабря 2012, 21:09:28 |
|
|
|
Ty3uK | Дата: Суббота, 08 Декабря 2012, 23:04:35 | Сообщение # 11 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| а ты покажи код с таймерами
|
|
|
|
beril | Дата: Воскресенье, 09 Декабря 2012, 00:43:41 | Сообщение # 12 |
7 уровень
Группа: Проверенные
Сообщений: 282
Награды: 0
Репутация: 139
Блокировки:
| И еще как запустить таймер Code call TimerStart(t, 7.00, true, function функция) Если функция которая хочу запустить Code function TWork takes integer i returns nothing То есть нужно как то так call TimerStart(t, 7.00, true, function TWork(i)) но это не работает Quote (Ty3uK) а ты покажи код с таймерами Мне кажется, что дело не в вайтах или таймерах (таймеры, это всетаки оптимизация)Добавлено (09 Декабря 2012, 00:43:41) --------------------------------------------- Ах да еще хотел спросить, как запустить таймер не вызывая другую функцию. Тоесть какое то действие Тут запускаем таймер тут следующее действие после истечения таймера. Как это правильно сделать подскажите ?
|
|
|
|
SirNikolas | Дата: Воскресенье, 09 Декабря 2012, 13:33:22 | Сообщение # 13 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| 60-14225
|
|
|
|
beril | Дата: Суббота, 15 Декабря 2012, 12:38:42 | Сообщение # 14 |
7 уровень
Группа: Проверенные
Сообщений: 282
Награды: 0
Репутация: 139
Блокировки:
| я так понял хэш не работает на 1.20?
|
|
|
|
SirNikolas | Дата: Суббота, 15 Декабря 2012, 13:23:11 | Сообщение # 15 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Нет. 1.24 и выше.
|
|
|
|
FkoFF | Дата: Понедельник, 17 Декабря 2012, 18:17:01 | Сообщение # 16 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| Может проблема в том что триггер срабатывает три раза одновременно? ) На что реагирует функция?
|
|
|
|
Borodach | Дата: Вторник, 18 Декабря 2012, 15:21:51 | Сообщение # 17 |
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
| Quote (beril) call TimerStart(t, 7.00, true, function TWork(i)) Функция в таймере не должна принимать значений
Karamba
|
|
|
|
|
|
|
|
|
|
|