|
|
|
|
Замена Waity
|
|
VladSekret | Дата: Суббота, 18 Октября 2014, 14:44:38 | Сообщение # 1 |
6 уровень
Группа: Проверенные
Сообщений: 198
Награды: 0
Репутация: -50
Блокировки:
| ЗАмена Wait, мне Сектор сказал, что проблема в карте из-за него, можно ли альтернативу на джассе? Таймер не предлагать,там не получится нормально сделать для многих игрков, если все сдохнут в течение 5сек, система нафигполетит.
|
|
|
|
Наклз | Дата: Суббота, 18 Октября 2014, 16:34:11 | Сообщение # 2 |
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
| Нет. Замены не существует. Только таймера (может сторожили объяснят как ими пользоваться, ибо я не понимаю, как нормальной системе с локальными переменными юзать таймера).
|
|
|
|
VladSekret | Дата: Суббота, 18 Октября 2014, 16:52:05 | Сообщение # 3 |
6 уровень
Группа: Проверенные
Сообщений: 198
Награды: 0
Репутация: -50
Блокировки:
| ок таймер, но полную систему как его сделать, просто у меня Unit умирает, Вейт 5 сек, и создать рандом Unit[Random 0-3]] for OWNER oF DYING UNIT at Respawn Point Of DYING UNIT. У меня в карте перестают респаунится войны, сектор сказал вейт все нафиг ломает, а как сделать таймером, что For Owner of Dying Unit, другое событие всетаки, это уже не сработает, а надо это. ПРобовал создать типо боевая еденица - Dying unit, но надо массив, а в другой переменной если Dying Unit[Хрен знает что тут, Owner of Dying Unit не сработает]
|
|
|
|
Melodia | Дата: Суббота, 18 Октября 2014, 16:55:44 | Сообщение # 4 |
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5051
Блокировки:
| таймеры жизни юнитам)))))))00000000000
|
|
|
|
VladSekret | Дата: Суббота, 18 Октября 2014, 16:59:08 | Сообщение # 5 |
6 уровень
Группа: Проверенные
Сообщений: 198
Награды: 0
Репутация: -50
Блокировки:
| нашееел! CustomScript TriggerSleepAction(5.00)
Сообщение отредактировал VladSekret - Суббота, 18 Октября 2014, 16:59:24 |
|
|
|
Borodach | Дата: Суббота, 18 Октября 2014, 17:20:53 | Сообщение # 6 |
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
| TriggerSleepAction(5.00) = GUI'шному Wait Если без таймера..., альтернатива Wait(Game-Time)
Karamba
|
|
|
|
VladSekret | Дата: Суббота, 18 Октября 2014, 17:51:48 | Сообщение # 7 |
6 уровень
Группа: Проверенные
Сообщений: 198
Награды: 0
Репутация: -50
Блокировки:
| Я уж понял, триггер слип актион тож не как Добавлено (18 Октября 2014, 17:28:39) --------------------------------------------- Бородач а можешь с таймером сделать как-то? Добавлено (18 Октября 2014, 17:51:48) --------------------------------------------- Wait GameTime тоже не пашет, либо у меня все таки действие слетает
|
|
|
|
Наклз | Дата: Суббота, 18 Октября 2014, 18:01:21 | Сообщение # 8 |
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
| Нет, оно изначально не пашет у всех, вейты это зло.
|
|
|
|
Borodach | Дата: Суббота, 18 Октября 2014, 18:31:41 | Сообщение # 9 |
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
| Цитата Наклз ( ) вейты это зло. Только в мультиплеерной игре.
Сдесь тебе помогут локальные переменные Load....
Karamba
Сообщение отредактировал Borodach - Суббота, 18 Октября 2014, 18:32:10 |
|
|
|
Extremator | Дата: Суббота, 18 Октября 2014, 19:08:00 | Сообщение # 10 |
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
| Лучшая замена - таймер. Оптимален, гибок, управляем. Можно построить что угодно.
Цитата Наклз ( ) я не понимаю, как нормальной системе с локальными переменными юзать таймера локально ты создаёшь лишь переменную, по обращению к которой будешь получать свой таймер сам же таймер - существует как объект, вне понятий локальный или глобальный
ты можешь объявлять локалку и цеплять на неё созданный таймер local timer t = CreateTimer() далее запускать таймер с указанием активируемой им функции call TimerStart( t, .03, true, function Func0001 ) либо создавать триггер, и добавлять ему ивент со срабатыванием своего таймера call TriggerRegisterTimerExpireEvent( trig, t )
Сообщение отредактировал Extremator - Суббота, 18 Октября 2014, 19:10:03 |
|
|
|
VladSekret | Дата: Суббота, 18 Октября 2014, 19:24:02 | Сообщение # 11 |
6 уровень
Группа: Проверенные
Сообщений: 198
Награды: 0
Репутация: -50
Блокировки:
| Скажи как конкретно сделать, идут действия, таймер с 5 секундами, и еще действия. Но надо чтоб если сработает этот триггер еще раз, до того как истечет таймер, нужно чтоб таймер не слетел.
|
|
|
|
Наклз | Дата: Суббота, 18 Октября 2014, 19:24:33 | Сообщение # 12 |
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
| Extremator, оу, об этом коде я не знал (плохое знание Jass)... пол года назад я бы за это тебе бутылку вискаря подарил, а так - лови плюс(завтра только смогу), очень поможет в работе.
Сообщение отредактировал Наклз - Суббота, 18 Октября 2014, 19:28:34 |
|
|
|
Extremator | Дата: Суббота, 18 Октября 2014, 19:41:32 | Сообщение # 13 |
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
| Цитата Наклз ( ) оу, об этом коде я не знал (плохое знание Jass) я сам не знаю Jass .-.
|
|
|
|
VladSekret | Дата: Суббота, 18 Октября 2014, 19:55:31 | Сообщение # 14 |
6 уровень
Группа: Проверенные
Сообщений: 198
Награды: 0
Репутация: -50
Блокировки:
| Цитата Extremator ( ) call TimerStart( t, .03, true, function Func0001 ) Какая нафиг функция??? ОТКУДА Я УЗНАЮ номер функции и че это такое, обьяснил бы хоть
|
|
|
|
Extremator | Дата: Суббота, 18 Октября 2014, 19:57:53 | Сообщение # 15 |
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
|
Сообщение отредактировал Extremator - Суббота, 18 Октября 2014, 20:07:15 |
|
|
|
VladSekret | Дата: Суббота, 18 Октября 2014, 20:12:03 | Сообщение # 16 |
6 уровень
Группа: Проверенные
Сообщений: 198
Награды: 0
Репутация: -50
Блокировки:
| ФАААААААКК... У меня щас моозг взорвется просто! В начале я писал что таким способом никак не получится. ПОтому-что за эти 5 секунд таких триггеров запустится еще раз 5, слетит 100 раз, надо в 1 тригг, или мега профф в два, я таким способом давно пробовал, даже посложнее...
|
|
|
|
Borodach | Дата: Суббота, 18 Октября 2014, 21:07:27 | Сообщение # 17 |
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
| Так я не понял... то что скинул тебе не помогло??? Какого результата ты добиваешся???
Karamba
|
|
|
|
Melodia | Дата: Суббота, 18 Октября 2014, 21:34:52 | Сообщение # 18 |
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5051
Блокировки:
| Цитата Borodach ( ) Какого результата ты добиваешся??? Ты сделаешь ему наработку, которую он воткнёт в карту, а потом будет клянчить у другого, чтобы проверил всю карту и "исправил, почему не работает"
|
|
|
|
VladSekret | Дата: Суббота, 18 Октября 2014, 21:50:39 | Сообщение # 19 |
6 уровень
Группа: Проверенные
Сообщений: 198
Награды: 0
Репутация: -50
Блокировки:
| Цитата Borodach ( ) Так я не понял... то что скинул тебе не помогло??? Какого результата ты добиваешся??? Нет, я твою наработку не открывал, а она мне разве? ты там локальные переменные какие-то.Добавлено (18 Октября 2014, 21:50:08) --------------------------------------------- а где таймер то? Нет сдесь таймера! Добавлено (18 Октября 2014, 21:50:39) --------------------------------------------- wait game second не работает говорю ж! из-за него все слетает, мне надо именно заменить wait а не переменные.
|
|
|
|
Borodach | Дата: Суббота, 18 Октября 2014, 22:36:32 | Сообщение # 20 |
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
| Цитата VladSekret ( ) а где таймер то? Без таймера чтоб тебе было проще Цитата VladSekret ( ) wait game second не работает говорю ж! А ты проверял??? Там все юниты ресаются как надо и без сбоя, какой результат тебе нужен???
Karamba
|
|
|
|
VladSekret | Дата: Суббота, 18 Октября 2014, 23:47:24 | Сообщение # 21 |
6 уровень
Группа: Проверенные
Сообщений: 198
Награды: 0
Репутация: -50
Блокировки:
| Facepalm, зачем я спрашиваю если я не проверял... И причем у меня система такая же как у тебЯ.Только в раз 10 сложнее, сектор вейт после опред времени перестает ее. Тянуть, вот и мне нужен таймер. А ты мне ухудшенную копию моей системы кидаешь ктюоторую. Я неделю делал. Спасибо поржал.
|
|
|
|
Borodach | Дата: Воскресенье, 19 Октября 2014, 00:10:52 | Сообщение # 22 |
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
| Скинь скрин своей системы которая не работает.
Karamba
|
|
|
|
sumert | Дата: Воскресенье, 19 Октября 2014, 07:31:56 | Сообщение # 23 |
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
| VladSekret, твоя проблема в том, что ты не понимаешь, почему у тебя не работает система. Давай объетивно посмотрим на все, что ты написал: Цитата VladSekret ( ) ЗАмена Wait, мне Сектор сказал, что проблема в карте из-за него Цитата VladSekret ( ) просто у меня Unit умирает, Вейт 5 сек, и создать рандом Цитата VladSekret ( ) У меня в карте перестают респаунится войны, сектор сказал вейт все нафиг ломает Цитата VladSekret ( ) Скажи как конкретно сделать, идут действия, таймер с 5 секундами, и еще действия. Но надо чтоб если сработает этот триггер еще раз, до того как истечет таймер, нужно чтоб таймер не слетел. Цитата VladSekret ( ) ПОтому-что за эти 5 секунд таких триггеров запустится еще раз 5 Во-первых, с таймерами триггер может запускать хоть 10 раз в течении 5 секунд и все ок работает. Твоя проблема в том, что он теряет по истечении этих 5-и секунд юнита. Поэтому тебе надо использовать локальные переменные. Можно даже и с вейтом. Вставь в начале триггера Local unit u=DyingUnit() Wait(5) Действия, но уже с переменной u (Создаешь действия с юнитом, переносишь в другой триггер, нажимаешь ctrl+d или конвертировать в текст, копируешь, вставляешь в исходных триггер, но меняешь юнита на переменную u) Set u=null. Объясняю принцип работы триггеров: триггер срабатывает при каждом произошедшем событии. Например, ты используешь глобальную переменную Unit. И например, умирают два юнита с периодичностью 2 сек. Вот что происходит. Умер первый юнит, переменная Unit=первый юнит, проходит 2 сек, умирает второй юнит, и переменная Unit=второй юнит. Проходит 3 сек, триггер, который был для первого юнита срабатывает для переменной Unit (а он уже равен второму юниту). А еще через 2 сек срабатывает триггер для второго юнита. Таким образом умирают 2 разных юнита, а воскрешается 2 раза последний юнит. Локальные переменные позволяют исправить это дело: ты схраняешь внутри триггера этого юнита и он не перезаписывается. Кстати та же проблема с глобальными переменными касается и реакций на событие (TrigerringUnit, DyingUnit и т. д.). Проблема не в вейтах и таймерах, тебя сектор жестоко обманул. Или ты его не понял.
|
|
|
|
VladSekret | Дата: Воскресенье, 19 Октября 2014, 11:58:53 | Сообщение # 24 |
6 уровень
Группа: Проверенные
Сообщений: 198
Награды: 0
Репутация: -50
Блокировки:
| Фааак, я тут вам понаписал строчек 50, но не отправилось. КАроче у меня там после waita over 100500 триггеров и в одном действие по 15 переменныХ, суперсложная система которую я писал неделю, сектор говорит либо в системе косяк, либо вейт ломает, но в системе косяков нет, перепроверил раз 100, заного пересоздал переменные, и что интересно ломается только одно основное действие после вейта
|
|
|
|
sumert | Дата: Воскресенье, 19 Октября 2014, 13:30:45 | Сообщение # 25 |
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
| Цитата VladSekret ( ) КАроче у меня там после waita over 100500 триггеров А ты знаешь разницу между триггерами и действиями? Если тебе надо, чтобы после смерти юнит воскрешался, самое простое: событие: юнит умирает. Действие: локальная переменная u=умерший юнит Ждем 5 сек Воскрешаем юнит типа юнита u. Очищаем переменную u.
А так обсуждать работоспособность системы, которой мы тут в глаза не видели - бессмысленно. Покажи хотя бы скрин, посмотрели бы вживую так сказать.
|
|
|
|
|
|
|
|
|
|
|