XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
NECros88

offline
Опыт: 16,351
Активность:
Проблема циклов и вэйтов
Столкнулся с проблемкой...
Необходимо сделать для 8-ми игроков одни и те же трюки с камерой. Ну я загнал игроков в группу и циклом начал управлять камерами, но тут столкнулся с проблемой... так как в триггере с камерами необходимы вэйты, то цикл просто останавливается после первого же вэйта в триггере, причём останавливается навечно. Отсюда я сделал вывод, что вообще в любых циклах нельзя использовать вэйты. И единственный выход из этой ситуации я пока вижу только в переборе одних и тех же функций для каждого игрока, но если со стороны посмотреть на это, то получаться нехилые тормоза и просто гемор при создании этих триггеров.
Собственно, подскажите как можно сделать всё это другим, более лёгким способом, можно на жассе...
Старый 13.02.2007, 21:58
exAres
I love magic :)
offline
Опыт: 7,788
Активность:
NECros 88 :
1) возможно у тебя цикл "виснет" из-за невозможности из него выйти(проверка не правильная) это в случае если ты пользуешся джассом.
2) вейты останавливают поток только если использовать их в группе, а в цикле они наоборот не дают потоку повиснуть если он исполняется очень много раз !
3) можеш вместо цикла использовать просто ифы но придётся делать много copy-paste, да и писанины не меньше :( "получаться нехилые тормоза " - не думаю что тормоза будут больше чем при использовании цикла.
Старый 13.02.2007, 23:25
NECros88

offline
Опыт: 16,351
Активность:
Тут каматозник подкатил, щас разберёмся с ним)) Если что, отпишусь...
Старый 13.02.2007, 23:30
VBSniper
Ёк макарёк
offline
Опыт: 3,486
Активность:
NECros 88
А что если для каждого игрока делать свои тригеры, что всё виснет?? Вот лично у меня ничего не виснет, ты посмори на доту, там сплошные тригеры!(джас) и ничего не виснет!"
Старый 14.02.2007, 06:18
nic666

offline
Опыт: 5,612
Активность:
NECros 88
Проблема может быть в том, что счетчик цикла меняется другим триггером когда вэйт. Попробуй использовать цикл с отдельной переменной, которая не используется в других триггерах и циклах...
Старый 14.02.2007, 10:26
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Цитата:
в переборе одних и тех же функций для каждого игрока
Не надо цикла, GetEnumPlayer() и ForPlayerGroup - Одна функция на всех игроков, или Для группы игроков, если юзаеш гуи, имхо.
Про глючность вэйтов писалось стопицот раз, используй таймеры, если ничего не поможед..
Старый 14.02.2007, 10:59
MPI3
Хм...
offline
Опыт: 24,597
Активность:
Ну.. можно сделать тупо, но будет работать:
8 триггов, Одно и тоже совитие и условие, действия для разных игроков.
Но это уже крайний случий!
Старый 14.02.2007, 11:07
adic3x

offline
Опыт: 108,439
Активность:
Насколько я знаю манипуляция с камерой в гуи идет через бж функцию, которая отлавливает игрока. А если просто попробовать юзать нативку, она должна походу для всех игроков пахать, ну эт если те над шоб одинаковая камера была.
Старый 14.02.2007, 11:57
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
в сj есть натива ForForce(takes force whichForce, code callback returns nothing) для игроков.
Старый 14.02.2007, 12:11
NECros88

offline
Опыт: 16,351
Активность:
Короче кто сказал чтобы для каждого игрока делать отдельный триг, я уже по-моему послал этот вариант на, так как это большой гемор. Группа игроков и циклы не пашут. Насчёт
Цитата:
ForForce(takes force whichForce, code callback returns nothing)

ты сам пробовал?
Старый 14.02.2007, 17:49
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Нет, цитата из сурса *сж в тему. Сейчас попробую :): Можеш кстати пример кода с глючными вэйтами выложить, будем фиксить точечно
Старый 14.02.2007, 17:53
NECros88

offline
Опыт: 16,351
Активность:
FellGuard постараюсь выложить, если каматозник ничего не сообразит) Пока сам думаю...
Старый 14.02.2007, 17:57
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Старый 14.02.2007, 17:59
NECros88

offline
Опыт: 16,351
Активность:
После первого же вэйта далее не пашет...
Старый 14.02.2007, 18:02
NETRAT

offline
Опыт: 83,712
Активность:
Хм, лол, а вы как думали? Посмотрите код функции PolledWait (триггерный Wait) и все вопросы сами отпадут.
используй вместо него call TriggerSleepAction(Количество секунд)
Старый 14.02.2007, 18:41
NECros88

offline
Опыт: 16,351
Активность:
NETRAT угу, попробую...
Старый 14.02.2007, 18:44
ComotozNick
Активность: 666
offline
Опыт: 26,206
Активность:
Цитата:
Одно и тоже совитие
- МРИЗ еще хорошо что не написал "соитие", тада бы ваще ржачь был бы.
Цитата:
Тут каматозник подкатил
- подкатывают токо бабы

Касательно карты - сделал, все работает. Правда выглядит не очень красиво... и лаги, но зато работает. Пришлось немножко удлиннить триггер за счет того что заменил один цикл несколькими.
Старый 15.02.2007, 01:59
ScorpioT1000
Работаем
online
Опыт: отключен
А ты попробуй циклом задавать переменную игрока и ранить тригг, запускающий камеру, n раз..
Старый 16.02.2007, 00:00
NECros88

offline
Опыт: 16,351
Активность:
ScorpioT1000 впринципе толка? Лаги остануться...

NECros 88 добавил:
Цитата:
подкатывают токо бабы

ты неправ)))
Старый 16.02.2007, 00:06
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 17:06.