Категория: Туториалы

И так, давайте приступим.
Для начала нам потребуются несколько вещей:
1 - г-мод или гта4 (советую гмод по скольку в гта4 функции совсем другие)
2 - луапад для гмода ( http://www.garrysmod.org/downloads/?a=view&id=78199 )
3 - Notepad++ - как луапад только внешний (http://download.tuxfamily.org/notepad....ler.exe)
4 - функции для Notepad++ (https://sites.google.com/a....rects=0
5 - кой-нить музончик чтобы не упасть в депрессию.

Для начала давайте изучим базы луа, синтаксис и циклы. Также возможно вам понадобится помощь с функциями, для этого есть luasearch.

Давайте изучим для начала if then else и т.д.
Открываем Gmod, запускаем синг и пишем в консоль luapad
чтобы запустить скрипт нужно нажать 1 кнопку вверху и выбрать тип запуска, в нашем случае будет "shared".

Мал. Словарик: стринг - строка


if SERVER then Msg( "nHELLO WORLDn" ) end


теперь разбираем все по частям.
в стринге вы видите 2 символа: \n - это перенос строки. Как тогда, когда мы жмем ENTER.
if - лог. оператор "если".
т.е. в нашем случае "если SERVER - истинна затем..."
SERVER - переменная для shared (sh_*.lua) скриптов, возвращает "true" - истинна когда
скрипт проганяется по серверской стороне.
then - разделяет инструкцию ( то что будет выполнятся ) со сравнением ( то что стоит в if-е )
Msg - текстовое сообщение в консоль, как комманда "echo"
и end - завершает if .

давайте продолжим дальше...


if CLIENT then chat.AddText( Color( 255, 0, 0 ), "HELLO", Color( 255, 255, 0 ), "WORLD!" ) end


if then и end вы уже знаете.
как видите, этот скрипт очень напоминает 1, но тут при прогоне скрипта на клиенте CLIENT возвращает true.
chat - библиотека функций, из таких библиотек состоит множество функций, таких как timer. ; ents. ; player. и т.д.
AddText - подфункция библиотеки chat. которая выводит сообщение в чат.
Color - функция для создания цвета как RGB и RGBA.
после идет текст который перекрашивается в цвет написанный в Color().

Добавлено (26.02.2012, 19:56)
---------------------------------------------
дальше давайте сделаем пару циклов, они довольно простые.

for k, v in pairs( player.GetAll() ) do Msg( "n"..tostring( k ).." has been pushed up!" ) v:SetVel( Vector( 0, 0, 1000 ) ) end


этот цикл нужно запустить на СЕРВЕРСКОЙ стороне ( server )!
for - оператор цикла. k, v - 2 переменные: k - возвращает номер в таблице который сейчас был затронут, v - основная переменная, в нашем случае ентити игрока.
in pairs( ) - перевод таблицы в 2 переменные. также можно использовать ipairs. Разница между ними - ipairs сортирует все по порядку ( там свои факторы ) а pairs в случайном порядке. do - как в if-е then.
.. - соединяет между собой 2 стринга.
tostring() - функция которая переводит номер - в нашем случае в стринг.
SetVel - функция которая применяет скорость к предмету - в нашем случае ко ВСЕМ игрокам. (НЕ ПУТАТЬ С ApplyForce)
Vector - создает 3д вектор из 3 чисел.
end - заканчивает цикл.

также есть еще 2 for цикл.

for i=1, 10 do Msg( "n"..tostring( i ) ) end


это тот-же цикл только численный.
i - переменная, как в 1 была k
а 10 - кол-во раз сколько цикл будет погонятся.

идем далее...


function explode( ply ) if not ply:IsValid() or not ply:IsPlayed() then return end ply:EmitSound( "ambient/explosions/explode_2.wav" ) ply:SetVel( Vector( 0, 0, 500 ) ) ply:Kill() end


это пользовательская функция.
function - ее начало, explode - ее название, а то что в скобках переменные для выполнения функции. end - заканчивает функцию.
if not ply:IsValid() or not ply:IsPlayer() then return end - давайте я вам не буду все разжевывать, я вам это переведу.
если ply не существует или ply не игрок тогда вернуть (ничего)
т.е. return end останавливает функцию.
EmitSound - проиграть звук зависящий от какого-либо енититя
SetVel - мы уже знакомы, а
Kill() - убивает игрока.

чтобы ее запустить нужно запустить сначала этот-же скрипт, а затем новый

for _, pl in pairs( player.GetAll() ) do explode( pl ) end


но учтите! функция у нас глобальная, если вам надо чтобы функция была расчитана только на 1 скрипт нужно написать local перед функцией. тоже дело и с переменными
к примеру

if true then local B = 1 end Msg( "n"..tostring( B ) )

будет ошибочным скриптом, а


if true then B = 1 end Msg( "n"..tostring( B ) )


будет правильным.




Комментарии:

TraX
Долгожители
26 февраля 2014 09:03
Ух. Пили дальше, мб и научусь чему-нибудь тогда :3

Войдите или зарегистрируйтесь, чтобы оставить комментарий.

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Информация

Привет, Mingebag!

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



Активные пользователи

Nuke
Материалов: 304
Комментариев: 1
De12344
Материалов: 52
Комментариев: 172
ololoev_93
Материалов: 44
Комментариев: 29
gmodorg
Материалов: 41
Комментариев: 0
Andreyn
Материалов: 25
Комментариев: 5
EginKama
Материалов: 16
Комментариев: 1

Мини-чат

scgamer scgamer
Сегодня в 14:44:30

scgamer scgamer
Сегодня в 14:43:52

ребят я только что скачал аддон подскажите куда мне его вложить? belay
musasport musasport
Сегодня в 02:19:08

Подскожите пожалуста как мне играть
maksim_listratenko maksim_listratenko
Вчера в 17:42:06

bully
dan2016-2016 dan2016-2016
19 февраля 2017

всем привет и да тем кто угрожает мне получит пизьдюлей от полиции
am
Dimas100 Dimas100
18 февраля 2017

привет
wink
serg190382 serg190382
18 февраля 2017

я неиграл вэту карту
Truejackey Truejackey
11 февраля 2017

love
TheVelan777 TheVelan777
11 февраля 2017

Вроде есть
TheVelan777 TheVelan777
11 февраля 2017

Хай всем
bud_zdorov11 bud_zdorov11
10 февраля 2017

андоты what
bud_zdorov11 bud_zdorov11
10 февраля 2017

здорово
FDSA FDSA
7 февраля 2017

добавте андот на имперских штурмовиков очень нужно
FDSA FDSA
7 февраля 2017

ЗДЕСЬ СТОЛЬКО АНДОТОВ ПРОСТО АВИГЕТЬ
Gmod Лёха Gmod Лёха
6 февраля 2017

А не знаете аддоны на 10 гмод идут на 15

Только зарегистрированные пользователи могут писать в чате.

Голосование

У вас уже есть лицензия Garry's Mod?
Да, доволен покупкой
Нет, мне хватает пиратской версии
Нет, но хотел бы приобрести

Голосовать Результаты

Последние темы

Rust – клон майнкрафта или что-то больше...

Последний ответ: Сегодня, 03:57
от SandraGot

Устанавливать карт

Последний ответ: Вчера, 14:28
от CurtisVap

Какие аддоны следует добавить на сайт ?

Последний ответ: 15:27, 18.02.2017
от FedorZof

gmod вылетает

Последний ответ: 19:02, 08.02.2017
от Dentalbix

Вопрос по сайту.

Последний ответ: 19:20, 01.02.2017
от Lesliesutty

Мы ВКонтакте