Code

@name  
@persist T X Y Z E:entity Radius  

Radius = 100  
E = owner()  
T = T+1  
X = sin(T) * Radius  
Y = cos(T) * Radius  
Z = E:pos():z() + 50  
holoCreate(1)  
holoPos(1,vec(E:pos():x() + X,E:pos():y() + Y,Z))  
holoModel(1,"icosphere3")  
holoColor(1,vec(200,0,230))  
interval(100)


Собственно как все это чудо работает?
Буду читать(именно читать) код.
Название чипа - голограмма, ЭдиторРУС
Переменные - T(Отвечает за цикличность), X(локальная координата по Х), Y(локальная координата У), Z(З), Radius(Радиус от центра, до любого места на краю окружности), E:entity(инф. о игроке)

Radius = 100 - радиус равен 100 юнитам
E = owner() - находим игрока который поставил чип
T = T+1 - начинаем цикл

X = sin(T) * Radius - синус цикла(от 0 до бесконечности), значение синуса будет равняться от -1 до 1, перемноженного на радиус, и заносится в X(то есть если sin(1500) * 100 = -100 - значит будет локальная координата -100). Кстати по умолчанию будет использоваться градовая система.
Y = cos(T) * Radius - косинус цикла, значение будет равняться от -1 до 1, перемноженного на радиус, то есть если cos(1500) * 100 = 0, получается при значении синуса -100, и косинуса 0, на двухмерном пространстве, голограмма будет точно слева посередине. Далее sin(1550) * 100 ~ -70,710678, а cos(1550) * 100 ~ 70,710678, в результате голограмма будет точно сверху слева по диагонали. Итого математический маятник должен качнутся 100 единиц чтобы синус был равен 100, а косинус 0, потом(200 в синусе - 0), и в вниз -1.
Z = E:pos():z() + 50 - это координата высоты на которой находится игрок(внимание, world координата!) игрока, правда 50 тут добавляется потому что высотой является количество единиц высоты от центра карты до ног игрока, самого начала ног.

holoCreate(1) - полностью "сокращенная" команда, создает голограмму на месте чипа. Есть "полная" команда, в которой можно сразу все уместить, и не писать то что будет снизу, я не использовал полную команду, потому что полная может изменить только одну голограмму, какую впрочем и создает.
Синтаксис "полной":
InfoEntity=holoCreate(Index,Position,Scale,Angle,Color,Model)
InfoEntity - можно по желанию записать в переменную этого типа информацию о голограмме, тип возвращаемых данных Entity
Index - индекс голограммы, для дальнейшей работы, любое целое число
Position - позиция по X Y Z(Local), используется тип Vector
Scale - масштаб голограммы, используется Vector-нный тип, локальная координата, X Y Z.
Angle - угол наклона, используется особый тип данных - angle, наклон по X(Длина) Y(Высота) Z(Ширина)
Color - цвет по RGB системе, используется Векторнный тип, только не vec(X,Y,Z), а vec(R,G,B), прозрачность не указывается.
Model - модель голограммы, String тип, поэтому название модели закрывать кавычками, модели и их названия можно найти на сайте http://wiki.garrysmod.com/?title=Wire_Expression2#3D_Holograms

holoPos(1,vec(E:pos():x() + X,E:pos():y() + Y,Z)) - я рассказал про полную, это всего лишь замена Position, синтаксис:
HoloPos(Index,Position)
Зачем тут нужны координаты игрока? Да потому что в X и Y локальные координаты, а при указании позиции координаты будут использоваться как World.
##Остальные команды аналогичны переменным из "полного" варианта##
interval(100)
Частота повторения ВСЕГО кода. В миллисекундах.
Кстати не указывайте число ниже этого, потому что голограммы лагать будут, из-за частых расчетов. По-крайней мере у меня 2.66 GHz, лагает при 80 миллисекундах.

Внимание!
Копирование материала запрещено без указания источника!




Комментарии   

  Извеняюсь, однако кодкривоват... И не нужно каждый раз создавать заново голограму. Однако людям пригодится =)

Профиль Ответ Цитата

  ололо, очень сложно
Знаешь, парень, тебе надо писать огромных роботов с фулл егп управлением, а лудше ГПУ управлением!
Или какиенибудь РПГ на 14 квестов с мобами, магазинами, магией, данжами, нпц..... =DD

Профиль Ответ Цитата

  Петросян млин:D

Профиль Ответ Цитата

  сложно однако

Профиль Ответ Цитата

Оставьте комментарий

Профиль

Привет: Mingebag

Гость, мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь!

Мини-чат

Пользователи

» Зарег. на сайте
Всего: 48828
Новых за месяц: 2018
Новых за неделю: 458
Новых вчера: 68
Новых сегодня: 87
» Из них
Администраторов: 1
Супер Модераторов: 1
Модераторов: 0
Проверенных: 54
Обычных юзеров: 48766
» Из них
Парней: 48376
Девушек: 452
Онлайн всего: 36
Гостей: 10
Пользователей: 26

Hrkopyte, nomad9999, viktoriakho777, cdoxhytb, pena4ok, Vadimkkko, dima121, BugsBunny33, Домино, NaydChannel, das98, dolgovec, vlados, alex02, sliter, sburkovskii, Friend_Science, ignasas100, k1ller127, paker14, deadkenny, CAIN47, Shadow47, Gman3000, dinu, zombine345

Мы ВКонтакте

Категории раздела

Уроки по Garry's Mod [28]
Категория уроков по Garry's Mod.
Разное [1]
Разное для Garry's mod