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

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

Ответ
 
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Необходимые триггеры -
  • Инициализация
Помимо всех "природных" настроек, необходимым является создание кэша и занесение его в переменную.
Отсюда запускаю триггеры: Initcache и Initdood
  • Initcache
здесь сохраняю в кэш пол первого и второго этажа. Прим. - пол первого этажа тоже нужно прятать, тк. размеры дома (без разреза) немного не совпадают с размером пола. Учтите, что пол - разрушаемый объект, а поэтому может менять положение только на одну "клетку" текстуры пути.
  • InitDood
Здесь прячу все объекты со второго этажа и те, что выходят за границы дома с первого. Когда все спрятал, двигаю дом в заранее определенную точку - дом представлен юнитом со способностью Локаст, чтобы его можно было делать прозрачным постепенно.
  • First
Триггер включен, отвечает когда юнит (не равный Дому, кстати) забегает внутрь -
Декорации первого этажа, включая пол и то, что выпирало за стену становится видимым, создается модификатор видимости на площади дома, чтобы стенки не исчезали в тумане войны.
присваивается значчение переменной r = 4
включается триггер - OccludeHouse и ExitOcclude0, ExitOcclude100 (об их действии расскажу позже)
  • Leave - это First с точночтью до наоборот, только значение r становится = -4
  • SecondUp, SecondDown - тоже взаимообратны, здесь тоже прячем или показываем декорации/дестракты, но тут еще добавляется модификация карты путей: там, где была дверь можно конечно, чтобы герой выпрыгивал из окна, но как-то это все неэстетично, так что приходится уничтожать/
восстанавливать блокираторы пути. По-хорошему, надо бы еще сохранять и загружать из кэша предметы, но там у меня небольшой лаг, который я позже исправлю.
  • OccludeHouse - выключенный периодический триггер, который при включенном состоянии раз в сотую секунды дабавляет дому (юниту, внешней модельке) сколько-то (r) прозрачности. Выключается триггерами ExitOcclude ~0(~100), когда прозрачность становится = 100 или 0.
Вот собственно и все.
Старый 10.05.2006, 12:54
AnD
Weighted Companion Cube
offline
Опыт: 7,351
Активность:
Спасибо, надеюсь я дозавтра все распишу. И завтра надеюсь улучшенная статья появится на форуме. :)
Старый 10.05.2006, 13:16
NETRAT

offline
Опыт: 83,712
Активность:
Фел, а ты не пробовал адаптировать это под мультиплеер с использованием функции GetLocalPlayer() ?
Старый 10.05.2006, 13:39
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
NETRAT, я так понимаю, что можно в здание пускать одновременно до одного игрока в мультиплеере. Если конечно, не придумать функцию типа PlayAnimationForDoodadsInRectForPlayer =)
GetLocalPlayer()? Поясни, как можно ее использовать?
Щас хочу там доработать возможность бросать предметы на этаже и убегать, так, тобы не "спускало" предмет, и чтобы он не исчезал. Полагаю, надо через РБ запоминать ИД предмета, и его Х.У..
НТ, как в варкрафте реализована группа юнитов? Было бы классно использовать группу предметов.
Старый 10.05.2006, 14:02
NETRAT

offline
Опыт: 83,712
Активность:
Почему до одного? В-общем фича функции GetLocalPlayer() в конструкции
Код:
if GetLocalPlayer() == Player(X) then
         ***CODE***
endif

то есть код внутри конструкции будет выполняться только на компе конкретного игрока, то есть фактически у разных игроков могут быть разные виды одного и того же места. Вроде бы этого должнл быть достаточно чтобы адаптировать систему

NETRAT добавил:
Группа прошита глубоко внутрь, что именно тебя интересует?
Старый 10.05.2006, 14:16
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Да-а, так, хотелось просто заканчивать пользовааться массивами и по-простому забивать все что ни попадя в группы. Видно не судьба :)
Код:
if GetLocalPlayer() == Player(X) then
   ShowDestructibleBJ(true, d)
endif

Тоесть, ты хочеш сказать, что в мультипле один и тот же объект может пребывать в нескольких состояниях?!! ОГО! Вообще, то кажется будет так - если без ЛокалПлэер - один игрок заходит - другой наблюдает. Пока первый шляется по дому, второй видит и смену этажей, и загрузку декораций и все остальное..
Но если для каждого игрока можно отдельно настроить все параметры отдельного объекта, это не вызовет багов?
И, кстати, эта вся байда будет высчитываться на компе у хоста?

FellGuard добавил:
Щас попробую простенькую проверку - зашлю бота в дом а сам постою :)... И потом надо будет с кем-то по мультиплееру шлифовать.

FellGuard добавил:
Нетрат... Нетрат, где ты? :) Заслал бота - ему нихрена - у меня все нормально, надо щас еще по сети с кем-нибудь проверить...
Старый 10.05.2006, 15:48
Toadcop

offline
Опыт: 54,313
Активность:
FellGuard с GetLocalPlayer() по сети будет дисконект ! я это уже давно пробывал ! и с юнитами не катит и с остальными прикольными вещями... кстати в GetLocalPlayer() можно давать значения локальным переменным напрю в кеш записать нельзя будет ДеСинк. ! короче не всё так просто... а про эту карту... ну такое мне уже давно известно и особенно извенста глючнасть этой идеи ! т.е. реально для игры без понтово... а особенно как сейчас надо каждый Дестрак, Дудад по отдельности прятать ! нашёл пркольный триггер оторый беззсмысленный ты там 0.01 проверяешь то что не надо проверять а точнее дому делаешь прозрачность =) ну короче это уже другая тема.
Вобщем я запарщик :) т.е. хвалить не буду т.к. это типа синиматика...
Старый 10.05.2006, 16:39
Markiz

offline
Опыт: 11,432
Активность:
NETRAT ты с ума сошел? =) Десинк ГГ
Старый 10.05.2006, 17:53
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Цитата:
нашёл пркольный триггер оторый беззсмысленный ты там 0.01 проверяешь то что не надо проверять а точнее дому делаешь прозрачность =) ну короче это уже другая тема.
А вот это нифига =) Пусть это и отдельная тема, но ты все же допиши, чего это я там зря проверяю.. 0.01 - прозрачность здания, остальные два триггера по 0 и 100 - отлавливать, когда прозрачность будет 100-0. Хотя, щас понимаю, что их сделал зря - можно было в 0.01 триггере добавить локалку и добавлять каждую милисек... И уж ее-то и отлавливать. В общем, не придирайтесь, триггеры писал на скорую руку :)
Цитата:
NETRAT ты с ума сошел? =) Десинк ГГ
Ну, очевидно, Нетрату ну ОЧЕНЬ уж хочется пустить в мультиплеер многоэтажку =)
Старый 10.05.2006, 20:46
Zerker
G Unit
offline
Опыт: 25,120
Активность:
FellGuard только щас решил скачать и посмотреть. Круто! Понравился интерьер - красиво сделано.
Старый 10.05.2006, 20:56
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Спасибо, почему так долго не решался? :) Эх, лишний раз сожалею, что нельзя выпустить в мультип.. Ну а для сингла пойдет и то ладно.
Старый 10.05.2006, 21:02
Iron
Листовой
offline
Опыт: 24,427
Активность:
А десинк вызывает любое действие ? Если нет, то вызывает ли его изменение проигрываемой анимации декорации для отдельного игрока.
Просто если не вызывает, то можно сделать дом 1-ой моделью и задать емуанимы 1-го, 2-го, 3-го, ... этажей и наслаждатся, а юнитов поднимать триггерно.
PS: А Смена прозрачности модели для 1-го игрока вызывает десинк ? (это чтобы игрок зашедший на 1-ый этаж не видел гуляющего по воздуху юнита игрока зашедшего на 2-й этаж)
Старый 10.05.2006, 21:03
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Iron, я разумею, что когда один объект получает разные параметры для отдельных игроков это писец Х_Х. А насчет триггерного поднятия юнитов - заколебешся рисовать кривые зависимости высоты полета от точки на лестнице. Так что :(

FellGuard добавил:
Думаю, стоит попдробнее изучить такое явление, как способности типа невидимость у НЕ или дух - у тени. Как вызывается разное отображение для разных игроков? Если бы переложить подобное на дудады, все были бы в дамках.

FellGuard добавил:
А вообще, щас подумал про тень... Может и не будет в данном случае Десинка?? Попробую по лане завтра че-нибудь сообразить.
Старый 10.05.2006, 21:09
NETRAT

offline
Опыт: 83,712
Активность:

Цитата:
А Смена прозрачности модели для 1-го игрока вызывает десинк ?
скилл DotA.Mortred.Blur - изменение прозрачности юнита для всех врагов не вызывает десинхронизации

Да, у меня мультиплеера нету и вообще с десинхронизацией я сталкивался только на двух картах - на одной была перегрузка карты обьектами, на другой просто глюк, поэтому то что я говорю это чисто гипотетически

Отредактировано NETRAT, 11.05.2006 в 02:39.
Старый 11.05.2006, 02:40
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
NETRAT, всетки я попробую, надеюсь, компы не сгорят :Ь
Наверное, это с юнитами можно вытворять для разных игроков по-разному, а с дудадами...

FellGuard добавил:
39 скачиваний.. На душе хорошо, все таки многим для сингльных РПГ нужна наработка...
Старый 11.05.2006, 06:53
Iron
Листовой
offline
Опыт: 24,427
Активность:
DotA.Mortred.Blur, если это скилл Варденшы (Phantom Assasin), то она вообще для всех игроков прозрачной становится (т.е. и для тебятоже)
Старый 11.05.2006, 09:31
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Iron, прекрасно, обнадежил =\. Как считаешь, есть все же возможность проварьировать для мульт. декорации?
Старый 11.05.2006, 10:28
Iron
Листовой
offline
Опыт: 24,427
Активность:
FellGuard Все зависит от того, вызывает лидесинк смена анимации модели для 1-го игрока (вроде бы не должна). Если ты проверишь это, то я смогу сделать модель, в которой анимации будут поэтажными. Так же проверь возможность задания прозрачности модели для отдельного игрока, тогда можно твоим способом, нотолько изменять высоту юнита прийдется Set unit flying height.
Старый 12.05.2006, 01:20
remal
нечто
offline
Опыт: 2,087
Активность:
известно, что для localplayer'a можно даже наносить отдельно дамаги по юниту. десинк будет только если он сдохнет:) (©wc3campaigns.com)
понятно, чтобы особо не нагружать сеть, передаются только необходимые вещи... любое визуальное оформление не вызовет дисинка (и спецэффекты и анимация). не должен вызывать десик и спавн юнита, если только этот юнит потом не побежит бить других... и тп... короче, тут надо эксперементировать.
Старый 12.05.2006, 03:40
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Лано, кароче понятно, что ничего непонятно... Одно - для локалплэера будет считаться разная высота пути - главная загвоздка...
Всетки я на недел и сыграю с кем-нибудь по нету :). Кстати, MPI3 живет неподалеку, может он согласится по модему разок нагрузить систему =)? Пайду спрошу...

FellGuard добавил:
Айрон, я бы не стал парится с моделями уже только потому, что надо будет нехилое уравненьице с вариантами писать для лесенки и зависимости Rate`а высоты полета от продвижения... И с областями заколеблешся - лучше уж с дудадами. Пойду договорюсь, результаты сообщу.
Старый 12.05.2006, 08:33
Ответ

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

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

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

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



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