Сейчас 12:46:01 Вторник, 17 июня, 2025 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
[Статья]Фонарь
romaN-1998Дата: Вторник, 01 Февраля 2011, 00:46:38 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
Мой вольный перевод этой статьи.
Автор:Belgarath

Система освещения

Не освещает 360 градусов.
Что нам понадобится.
Нам нужно это - Light.mdx- модель освещения сама. И несколько ОЧЕНЬ простых триггеров, которые помогут нам использовать этот "светильник".

Итак - почему система фонаря? Потому что, это освещение только перед юнитом, а не вокруг его всего.

Подготовка

1.Создайте юнита с моделькой, которую вы скачали. Назовите его Light.Добавьте ему способность "Москиты" и сделайте его неуязвимым, уберите тень.
2.Зайдите в "Редактор переменных", создайте там переменную LightUnit типа Боевая единица
(Это и будет наш фонарь)
3.Стоп,стоп, не выходите из "Редактора переменных", создайте ещё одну переменную TempPoint типа Точка с массивом 2. (Это будет позиция юнита, который будет с "фонарём")
4.Создайте триггер: (Жёлтый - английские триггеры;Оранжевый - русские триггеры)

События:
Map Initizalition
Условия.
Действия:
Боевая единица - Создать 1 Light (наш юнит) в точке (Позиция(Юнит с фонарём)) Unit - Create 1 Light in (Position of unit(Юнит с фонарём))
Установить переменную - Установить LightUnit = Последний созданный юнит Set Variable - Set LightUnit = Last created unit
Custom Script: call SetDayNightModels("","")

5.Создайте другой триггер:

События:
Каждую 1.00 секунду (Every 1.00 seconds)
Условия.
Действия:
Установить TempPoint[1] = Позиция Юнита с фонарём
Установить TempPoint[2] = TempPoint[1] со смещением в 300 точек под углом ((Поворот лица Юнита с фонарём) градусов)
Боевая единица - Двигать Light(наш светильник/переменная) мгновенно в TempPoint[2]
Custom Script: call RemoveLocation(udg_TempPoint[1])
Custom Script: call RemoveLocation(udg_TempPoint[2))

И вот результат:


Все недочёты по переводу писать тему.Перевёл: Elf aka romaN-1998

Сообщение отредактировал romaN-1998 - Вторник, 01 Февраля 2011, 00:47:03
 

[stebashka]Дата: Вторник, 01 Февраля 2011, 05:34:38 | Сообщение # 2
пути и нити разными бывают
Группа: Библиотекари
Сообщений: 4719
Награды: 5
Блокировки:
Спс, статья хорошая
только модель лучше сделать самому, так как данная слабо освещает




Сообщение отредактировал [stebashka] - Вторник, 01 Февраля 2011, 05:34:49
 

romaN-1998Дата: Вторник, 01 Февраля 2011, 10:23:54 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
[stebashka], ну я не знаю. это статья с хайва, я просто её перевёл, правда было трудно с понятиями..
 

SPtrueДата: Вторник, 01 Февраля 2011, 10:39:21 | Сообщение # 4
Mí alegre
Группа: Проверенные
Сообщений: 2732
Награды: 2
Репутация: 692
Блокировки:
См бы хоть скрины сделал=) А то все по норвежски вроде=)
А так статью я не сильно понял
 

[stebashka]Дата: Вторник, 01 Февраля 2011, 10:55:20 | Сообщение # 5
пути и нити разными бывают
Группа: Библиотекари
Сообщений: 4719
Награды: 5
Блокировки:
Quote (SPtrue)
А так статью я не сильно понял

лолшто?
как ее можно не понять?


 

romaN-1998Дата: Вторник, 01 Февраля 2011, 13:01:33 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
SPtrue, дык мозг надо иметь
 

SirNikolasДата: Вторник, 01 Февраля 2011, 13:21:32 | Сообщение # 7
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (romaN-1998)
создайте ещё одну переменную TempPoint типа Точка с массивом 2.
Не обязательно 2, главное, чтобы был массив.
Quote (romaN-1998)
Каждую 1.00 секунду (Every 1.00 seconds)
Каждые 0.04 секунды (Every 0.04 seconds of game time)
Quote (romaN-1998)
Боевая единица - Создать 1 Light (наш юнит) в точке (Позиция(Юнит с фонарём)) Unit - Create 1 Light in (Position of unit(Юнит с фонарём))

Set TempPoint[0] = (Position of <Юнит с фонарём>)
Боевая единица - Create 1 Light (наш юнит) for Нейтрально-пассивный at TempPoint[0] facing (Facing of <Юнит с фонарём>) degrees
Custon script: call RemoveLocation(udg_TempPoint[0])
Quote (romaN-1998)
Условия.
Условия:
(Здоровье (текущ.) of <Юнит с фонарём>) > 0.00

И вообще на статью не тянет, просто пример использования модели освещения.




Сообщение отредактировал SirNikolas - Вторник, 01 Февраля 2011, 13:23:28
 

romaN-1998Дата: Вторник, 01 Февраля 2011, 14:12:50 | Сообщение # 8
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
SirNikolas, эх... юнит создаётся на позиции Юнита с фонарём изначально, а дальше перемещается.
 

SirNikolasДата: Вторник, 01 Февраля 2011, 14:13:32 | Сообщение # 9
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Но удаление точки никто не отменял.

 

romaN-1998Дата: Вторник, 01 Февраля 2011, 14:45:09 | Сообщение # 10
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
SirNikolas, если бы ты был внимателен, то у меня присутствует удаление точки
 

FaionДата: Вторник, 01 Февраля 2011, 15:19:27 | Сообщение # 11
10 уровень
Группа: Проверенные
Сообщений: 1894
Награды: 0
Репутация: 430
Блокировки:
Не рекомендую юзать, слишком медленный скрипт, более того он не МУИшный. Локации это прошлый век. С координатами работать будет значительно быстрее.

О нас думают плохо лишь те, кто хуже нас, а те кто лучше нас... Им просто не до нас.
My Project: Nindogatari
MAL
 

SirNikolasДата: Вторник, 01 Февраля 2011, 17:15:52 | Сообщение # 12
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Дубль два.
Quote (SirNikolas)
Quote (romaN-1998)
Боевая единица - Создать 1 Light (наш юнит) в точке (Позиция(Юнит с фонарём)) Unit - Create 1 Light in (Position of unit(Юнит с фонарём))
Set TempPoint[0] = (Position of <Юнит с фонарём>)
Боевая единица - Create 1 Light (наш юнит) for Нейтрально-пассивный at TempPoint[0] facing (Facing of <Юнит с фонарём>) degrees
Custon script: call RemoveLocation(udg_TempPoint[0])
Разве выделенное оранжевым не является утечкой и не нуждается в удалении? Также полностью соглашусь с Faion.


 

DreiiДата: Вторник, 01 Февраля 2011, 17:18:26 | Сообщение # 13
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
SirNikolas, проще переписать ее норм

 

Forum_RussiaДата: Воскресенье, 06 Февраля 2011, 18:04:54 | Сообщение # 14
9 уровень
Группа: Проверенные
Сообщений: 1185
Награды: 4
Репутация: 666
Блокировки:
О прикольненько)
 

NestrikДата: Воскресенье, 06 Февраля 2011, 18:50:00 | Сообщение # 15
4 уровень
Группа: Пользователи
Сообщений: 88
Награды: 0
Репутация: 7
Блокировки:
хм, выполнимо чисто на ГУИ, вполне рационально, для новичков с идеями о ночных картах сгодится вполне, правда решение банальное, как то действительно:
Quote
И вообще на статью не тянет, просто пример использования модели освещения.
 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2025 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz