E2 garry s mod гайд

Обновлено: 05.07.2024

Expression 2 - самый сильный инструмент Wire Mod. Это язык программирования, благодаря которому вы сможете заменить тучу гейтов (Gate) одним несчастным чипом. На E2 можно написать что угодно - от базового Hello World вплоть до создания рабочей ОС прямо в игре. На данный момент мы не будем создавать ни Hello World, ни ОС. К ОС вы ещё не готовы, а Hello World не будет иметь практического применения как такового. Нам нужно что-то интересное и, если можно, полезное.

Я так полагаю, что меню вы открывать научились, равно как и провода класть.
Заходим в меню Wire>Wire - Control>Chip - Expression 2
Просто выбираем и возвращаемся в меню. Жмём правую кнопку мыши, и - та-да! Получаем вот это вот:

База оформления готова. Теперь непосредственно к самому коду.
В нашем чипе мы будем использовать функцию if then else
Выглядеть готовый код будет так:

Ну что же, создаём чип для контроля поворота турели!

Выделить код

Итак, что же значит наш код?
Начнём с того, что функция if then else оформляется именно так:

Условие пишется в скобках:
(A==1)
A - Указанный в Inputs вход. Также можно использовать выражения типа A>B; A<B и тому подобное (b - переменная или число). Учтите, в условии пишем два знака "=". Без пробелов.
В нашем случае, условие будет выполнено, если во вход A подается сигнал 1. Надеюсь, что более детально обьяснять не потребуется.

Тогда - функция, которая будет выполнятся при выполненном условии:

Run - Указанный в Outputs выход. Значит, при выполнении условия в выход Run подаётся сигнал.

Или - функция, которая будет выполнятся если условие НЕ выполнено:
else
Учтите то, что в Тогда и Или можно впихнуть ещё одну функцию - вот именно благодаря этому и будет работать наша турель. Не забудьте про пробел перед else.

Попробуйте разобрать уже данный выше код:

Старайтесь понять принцип. Можете даже рисовать на бумаге алгоритмы. Если вы не поняли принципа - я объясню.
Если в A поступает сигнал 1, то переменная Run подаёт на выход сигнал 1. Если же сигнала в А нет (равен нулю), то проверяем наличие сигнала 1 в D. Если он есть, то Run выдаёт -1. Если же сигнала в D нет, то Run не выдаёт сигнала (ноль).

Перепроверьте код. Каждый пробел и каждая скобка должны быть на месте. Попробуйте поставить чип - выйдите из редактора кода и щёлкните левой кнопкой мыши. Если выдаёт ошибку и чип не создаётся - перепроверьте. Войдите в редактор правой кнопкой мыши.

Нам нужен пакет моделей PHX и инструмент EasyPrecision.
Из чего мы будем конструировать наш девайс:

Создайте Wire Wheel. Вы, надеюсь, знаете, где его искать?
Характеристики - за модель возьмите что-нибудь плоское. Я взял часики. Не волнуйтесь, видно их не будет.
Torque - 123, Friction - 1. Можете удвоить скорость, но сильно не увлекайтесь. Мои характеристики обеспечивают ей довольно медленный поворот, но вполне нормальное торможение, а значит и точность.

Создаём из пакета PHX следующие модели:
General Construction Props - Metal_Plate1 и Metal_Plate2x2
Specialized Construction Props - tri1x1x1
В Vehicles создаём Jeep Seat, или другое сидение по вашему желанию.

Теперь соединяем!
Берём платформу 2х2 и с помощью EasyPrecision Weld-им её к центру колеса.
Получаем вот это вот:

Далее - Присоединяем треугольный каркас к платформе. Ровненько, с помощью EasyPrecision Weld-им её как вам удобно. Мне нравится вот так:

Теперь возьмём единичную платформу, и прикрепим её так:

Осталось немного - прикрепляем Wire Turret, характеристики ваши и только ваши, и крепим куда захотим на единичную платформу. Я сделал так:

Теперь создаём Наш чип, ставим его где-нибудь на той же платформе.
После него создаём Advanced Pod Controller, правой кнопкой мыши соединяем его с выбранным вами креслом (само кресло крепить пока что не будем):

Пришло время соединить всю турель. Выбирайте инструмент Wire Advanced (и не забудьте в настройках выставить Width на 0 чтобы провода не было видно) и соединяйте. Но для начала поднимите платформу в воздух, чтобы вы могли подключить провода к колесу, типа этого:

Теперь, соединяем. Берём вайр и соединяем:
E2 Chip "A" - Advanced Pod Controller "A"
E2 Chip "D" - Advanced Pod Controller "D"
Wheel "A:Go" - E2 Chip "Run"
Wheel "B:Break" - Advanced Pod Controller "Space"
Turret "Fire" - Advanced Pod Controller "Space"

Прикрепляйте кресло Weld-ом туда, куда вам удобно.
Итак, теперь если вы всё сделали правильно, то садясь на кресло вы получаете полный контроль над турелью.

-За передней панелью вам вряд ли будет хорошо видно. Сделаем её невидимой с помощью инструмента "Colour". Для этого выставьте всё на значения "0" и кликните на платформу.
-Управление можно изменить подключив тормоз (break) и огонь турелей (fire) на другой выход в Advanced Pod Controller.
-Скорость колеса советую увеличить.
-Советую применить Physical properties. Выставьте материал колеса "ice", и уберите галочку с "gravity Toggle"
Турель будет выглядеть вот так:

Если есть какие вопросы - прошу в комментарии.
Надеюсь, что тутор вам понравился. Удачи!


Оценок: 137 Wiremod Expression 2. Изучаем основы В этом руководстве я опишу базовые принципы Wiremod Expression 2, расскажу о типах данных, базовых функциях и конструкциях языка.


1 В избранное В избранном Этот предмет добавлен в избранное.


j0ez
Не в сети 28 мая. 2015 в 7:24 26 янв. 2016 в 16:20
3,870 уникальных посетителей
271 добавили в избранное
Оглавление руководства



Что такое Expression 2


Окно компилятора





Таймеры и события


Типы данных и переменные


Работа с переменными


Заключение


Комментарии Что такое Expression 2 Expression 2 - это язык программирования, поставляемый с аддоном Wiremod, который позволяет манипулировать объектами, создавать голограммы, проводить математические вычисления и тому подобное. Как и каждый язык программирования, он имеет свои функции, конструкции и правила.
В компиляторе языка присутствует E2Helper, ваш верный помощник, позволяющий вам найти необходимую вам функцию и узнать, что эта функция делает, возвращает и какие аргументы принимает. Правда, он на английском языке, так что у некоторых могут возникнуть трудности. Окно компилятора

Для начала рассмотрим наше окно компилятора. Чтобы открыть его, необходимо открыть Q-меню, справа сверху выбрать вкладку Wiremod (конечно же, надо скачать Wiremod, но раз вы читаете это руководство, я полагаю, что он у вас уже установлен), далее найти папку "Chips, Gates", нажать Expression 2 (далее Expression 2 я буду писать как E2) и потом слева в открывшемся окне нажать "New Expression".

Итак, перед нами появилось вот такое окно:

Слева мы видим древовидную структуру папок и файлов с E2 чипами. Тут вы можете выбрать файл, который хотите отредактировать. Сами эти файлы на компьютере хранятся в папке Steam\SteamApps\common\GarrysMod\garrysmod\data\expression2.

Небольшой совет: сортировать E2 файлы лучше именно через проводник Windows, потому что через встроенный проводник E2 это делается гораздо медленнее.

Если вы создали чип, но слева он не появился, нажмите внизу слева кнопку Update. Это обновит меню, и вы увидите ваш недостающий чип.

В самом верху этого меню есть строка поиска, с помощью которой можно найти чипы в вашей коллекции.

Сверху расположено 5 кнопок (по порядку): Скрыть/открыть левое меню с файлами, сохранить текущий файл, создать новый файл, удалить текущий файл, обновить файл. Думаю, что комментарии излишни.

Справа сверху также расположено 4 кнопки: Sound Browser - тут вы можете найти все звуки из игр Source, которые могут быть использованы при создании чипа, E2Helper - сборник всех функций E2 c их описанием на английском, Save as - сохранить файл под новым именем, Save & Exit - сохранить файл и выйти.

Чуть ниже расположено поле, где показываются все открытые на данный момент E2 чипы.

В самом низу есть строка, где у меня написано "Validation successful". При нажатии на эту строку компилятор проверяет ваш код на наличие ошибок и в зависимости от того, есть ли они или нет, меняет свой цвет на красный или зеленый, а также показывает место, где обнаружена ошибка.

Важно: обнаруживается только первая встреченная ошибка, так как компилятор однопроходной. Также может выдаваться ошибка в тех местах, где на самом деле их нет, так что периодически вам придется просматривать весь код заново, порой по несколько раз.

Основная зона компилятора - место, где вы будете писать свой код. Именно тому, что туда нужно писать, и будет посвящена оставшаяся часть руководства.

Рассмотрим теперь первые пять строк:

@name - имя нашего чипа. По умолчанию при сохранении чип будет брать имя, указанное в этой строке, иначе будет имя "generic".

@inputs - список переменных, которые будут подаваться на вход нашего чипа. Их нельзя менять непосредственно внутри чипа, а можно только считывать их текущие значения.

@outputs - противоположность @inputs. Объявляет переменные, которые будут подаваться на выход чипа. Используется в тех случаях, когда вы хотите передать значение из чипа на другой элемент из Wiremod'a, например, Screen или другой чип. Также сюда можно занести переменные, за значениями которых вы хотите следить через инструмент Debugger.

@persist - переменные, используемые внутри вашего чипа. Значения этих переменных нельзя вывести обычным путем, как, например, вы бы сделали с выходными переменными.

@trigger - сюда мы пишем события, при которых будет срабатывать наш чип, например, можно настроить срабатывание чипа на изменение определенных входных переменных или вообще всех входных переменных.

Также присутствует не указанная здесь директива @model. Она определяет модель нашего чипа. Вместо стандартной модели чипа можно использовать, например, бочку, череп, да что угодно!

В последнем обновлении, как видно на скриншоте, добавлена директива @autoupdate. Если она присутствует в чипе, то при создании или дублировании чипа он будет искать последнюю версию этого чипа и запускать ее.

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

Эта публикация удалена, так как она нарушает рекомендации по поведению и контенту в Steam. Её можете видеть только вы. Если вы уверены, что публикацию удалили по ошибке, свяжитесь со службой поддержки Steam.

Этот предмет несовместим с Garry's Mod. Пожалуйста, прочитайте справочную статью, почему этот предмет может не работать в Garry's Mod.

Доступность: скрытый

Этот предмет виден только вам, администраторам и тем, кто будет отмечен как создатель.

Доступность: только для друзей

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


Оценок: 272

Различные игровые режимы, найденные мной.

От Doleo и соавторов


4


7


1

В избранное

В избранном

Этот предмет добавлен в избранное.


Doleo
Не в сети

kolzar
Не в сети

25 янв. 2020 в 7:28

9 июл в 12:06

4,201 уникальных посетителей
434 добавили в избранное

Оглавление руководства



Вступление


1. Ground Control


2. Slave of Gmod


3. Fort Fights



5. Market Fog


6. Survivalist



8. F2S Stronghold


9. Starship troopers


10. Assassins


11. Factories



13. Quake 3


14. Spacebuild 2


15. Crysis Wars


16. Pirate ship wars 2


17. Players VS BOSS


18. Elemental Wars


19. Slasher


20. Stop it, Slender!


21. Slashers


22. Stranded


23. Tactical tool game


24. Sacrifun


25. Homicide


26. Suicide Barrels


27. Guess Who


28. Ragdoll combat



30. Open Virus



32. Boiguhs


33. Alien: Isolation



35. Hover Gear


36. Ascension 13


37. Cops and Runners



39. Postal Gamemode


40. Trash Compactor Gamemode


41. Neo-Smash


42. Darkest Days


43. Citizen Quest


44. Extreme Football Throwdown


45. You Touched it Last


46. Dropzone



48. Melon racer


49. Freeze Tag


50. DodgeBall


51. The Floor is Lava! Workshop Edition


52. Absolute Nightmare


53. DOGFIGHT: Arcade Assault


54. Zworld Afterlife


55. Morbus Gamemode


56. Zombie Plague


57. Ghost Hunters


58. Gun Game


59. Five Nights at Freddy's Gamemode


60. The Stalker


61. Half-Life Co-op: Infected


62. NZombies Rezzurrection


63. Jazztronauts


64. PAYDAY 2: Режим []


Конец, совсем


Комментарии

Вступление

English version available!
Как уже известно, DarkRP съел все остальные игровые режимы. Я скажу больше, он съел их и в мастерской. Люди. создавая новые DarkRP сервера, добавляют контент сервера куда? Правильно, конечно же в Gamemodes. То есть, мало того, что на остальных режимах онлайна нет, так еще другие режимы и найти сложно. Я поставил цель найти как можно больше различных игровых режимов в зacpaннoй контентами DarkRP мастерской. Руководство будет пополняться.

Марат Бурибаев

Туториал по Expression 2
(Туториал переведён с английского языка и слегка изменён,оригинал смотреть тут)

В данном туториале цель - показать основы Е2,причём показать это как можно нагляднее.

Сначала ознакомимся с первыми пятью строками:

Code
@name
@inputs
@outputs
@persist
@trigger All

"@name" - имя экспрешина,которое будет видно при
наведении на него взгляда. Необязательно,если оставить пустым то при
наведении взгляда заместо имени будет "generic".

"@inputs" - строка для входов, т.е. что экспрешин будет обрабатывать

"@outputs" - строка для выходов, т.е. результат вычислений экспрешина

«@persist» - строка для переменных,сюда надо добавлять переменные в случае если этого просит чип (например,использование в конструкции if-then-else или дельта)

Для примера разберём несложный код:

Code
@name Add Expression
@inputs A B
@outputs Out
@persist
@trigger All

Этот код складывает значения A и B и выводит на выход Out

Кроме этого можно производить другие математические действия:

Out = A – B
Out = A / B
Out = A * B
Out = A ^ B (возведение A в степень В)

Функция if — самая элементарная и частоиспользуемая. Она работает на принципе клапана — если (if) условие верно,то (then) сделать действие1,иначе (else) сделать действие2.Схема такая:

То есть если A — верно (больше нуля) то приравнять Out к В,иначе приравнять к С.

Ну и пример на практике:

Code
@name Control
@inputs Button
@outputs Out
@persist
@trigger All
if(Button) else

Кроме того можно писать и без else:

В этом случае значение не сбрасывается и после нажатия на нашу кнопку Out продолжит быть 30 пока мы не сделаем условие чтобы оно принимало нужное нам значение (например, if(Button2) )

Теперь ещё один пример:

Code
@name Speed
@inputs Speedometer Button
@outputs Out
@persist
@trigger All

То есть когда мы нажимаем на кнопку выход Out принимает значение спидометра,но тут проблема — когда мы выключаем кнопку Out остался как в последний момент перед выключением? Чтоже делать?
Мы забыли сделать возврат к нулю (else),и правильный код будет:

Code
@name Speed
@inputs Speedometer Button
@outputs Out
@persist
@trigger All

Теперь изучем проверки. Они бывают такими:

Code
@name Bell
@inputs Timer
@outputs Sound
@persist
@trigger all

В нашем случае это код будильника.Когда таймер (время) больше либо равно 10 то подаём звук, иначе — молчим (просьба не спрашивать меня как делать для этого таймер и как выводить звук,это просто пример — прим.авт)
Так же можно вставлять несколько условий,например:

Code
@name Test
@inputs Button1 Button2
@outputs Out
@persist
@trigger All
if (Button1 | Button2) else

Если нажата либо одна либо друга кнопка,то подать на выход 5.Так же кроме «A | B» (или) есть «A & B» (то есть если и А и В больше нуля).Можно делать и более сложные комбинации:

Code
@name Test
@inputs Button1 Button2
@outputs Out
@persist
@trigger All
if (Button1 >= 0 & Button2 == 54) else

То есть если кнопка 1 больше либо равна нулю И кнопка 2 равна 54 то подать на выход

Читайте также: