Партнеры
Хотите обменяться с нами баннерами? Разместите нашу кнопку у себя на сайте и go в Баннерообмен

Наша кнопка:

Код баннера:
--------------------------
Партнеры:


вип-сталкер вип-зона Уроки, Файлы, Новости, Статьи, Рассказы, Интересные факты и многое другое для игры Stalker на stalkerov.clan.su
Все о Shadow of chernobyl, Clear sky, Call of pripyt.
MYSTALKER - лучший портал по сталкеру!
Категории раздела
Основные статьи [20]
Всё о Сталкере
Разное [26]
Статьи с разной тематикой
Рецензии [7]
Здесь собраны статьи журнала
Чернобыль [2]
Статьи о мёртвом городе...
Интервью с создателями [0]
Логи чатов и интервью с разработчиками
Книги и рассказы [0]
полные тексты книг и рассказов из мира S.T.A.L.K.E.R.
Мини-чат
Опрос
Читаете ли вы электронные книги?
Всего ответов: 43
Главная » Статьи » Разное

Скриптование Сталкера №1 урок
Папка со скриптами: scripts
Формат скриптов: *.script
Открыват: любым текстовым редактором(даже блокнотом)

Вот что я сейчас помню из своего опыта:
------------------------------

IF THEN ELSE
Обыкновенное условие:
if db.actor then
end

Запомните:
Сколько условий столько должно быть и end . Переизбыток или не достаток приведёт к вылетам.

Обыкновенное отрицательное условия
if not db.actor then
end

Условия с использованием else

if db.actor then
-- Действие
else --Иначе или противодействие
-- Действие
end

if db.actor then
-- Действие
elseif условие then -- Иначе если
-- Действие
end -- в данном случае нужен только один end т.к. это считается одним условием

Есть ли у гг объект и другой объект
if db.actor:object(obj) and db.actor:object(obj1) then
end

Если ли у гг объект или другой объект
if db.actor:object(obj) or db.actor:object(obj1) then
end

Если у гг один объект и другой или третий
if db.actor:object(obj) and db.actor:object(obj1) or db.actor:object(obj2) then
end
, но тут уже надо опиратся на логику, чтобы не ошибится в условии

--------------------------------------
Комментирование
Чтобы отключить\закомментировать строку используют два символа -
Также есть и блок коменнтариев
Начинается с
--[[
заканчивается
]]

---------------------------------------
Return
Я часто видел в модах проверки на наличие предметов у гг вида
if db.actor:object(obj) ~= nil then
return true
else
return false
end

Но можно воспользоватся и такой вещью как return и это будет выглядить так:
return db.actor:object(obj)

Значительно меньше не правда-ли? return может служить и заменой if
следовательно в нём возможны и такие виды:
return not
return условие and условие
return условие or условие
без end !

Недостаток:
в функци return может вызыватся лишь один раз в отличии от банальных if then

-----------------------------------------------
Объявление переменных

Все кто знаком со скриптами сталкера знает такую вещь как db.actor
Как много букв, а можно ли это как-то укаратить? Ответ: утвердительный!
До
db.actor:character_community()
После
gg:character_community()
db.actor и gg , где же меньше букв? Но какая разница где больше букв?!
А разница в том, что чем больше символом тем больше вес скрипта и чтобы хоть как-то укоротить скрипт применяют вот такие выходки.
Что такое gg ясно, но где содержится значение переменно?
Ответ: в local
local - это такая хрень которая объявляет переменные.
выходит так
local gg = db.actor

gg:character_community()

Запомните:
никогда не делайте переменные такого вида:
db.actor = gg
Т.к. следуя логике выходит что такая глобальная вещь как db.actor будет равна gg . Казалось-бы что такого? А в том что я незнаю))) Но когда я так сделал появился вылет.

Объявленные переменные можно и изменять, но уже не через local :
gg = db.storage

Можно из также и уничтожать благодоря функции nil
Запомните:
Чтобы уничтожить функцию можно применять и nil
Никогда nil функции и ещё использующиеся переменные.
nil - это просто как бы сказать....ну как бы как чёрная дыра...уничтожает без выделения информации что эффективнее обнуления, т.к. 0 - это хоть какая-то информация, а nil - это полное её отсутствие.

----------------------------
Функции
Виды функций:
Пример простой функции
function test()
-- скрипт
end

Пример функции с параметрами:
function tst( i, o)
-- скрипт
end
После функции должен быть end
Значение функций:
В них содержатся условия, скрипты, переменные и всё остальное...переменные можно также и вне функции распалогать.
------------------------------------------
Вызов функций
Если вы хотите вызвать функцию из другого скрипта:
kuperday.call_func()
Если вы хотите вызвать функцию из этого же скрипта где и функция вызова
call_func()

Интересный факт:
Если в скрипте нет нужной функции, то движок будет его искать в _g.script
Если он там есть, то всё ок, если нет - вылет.
----------------------------------------------------
Всё... если чего-то не написал или не дописал извиняйте.
Если что не понятно, в личку или асю.

Автор: kuperday

Категория: Разное | Добавил: DOC_VENOM (03.02.2011)
Просмотров: 1183 | Рейтинг: 5.0/1
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Статистика
Яндекс цитирования

Лучшие игровые сайты на StopGame.Ru
1
Прохожие: 1
Сталкеры: 0


[Посетители]
[Лучшие пользователи]
Советуем
Главная страницаФорумМоды и файлыГалереяСтатьиFAQНайти
Авторское право на игру и использованные в ней материалы принадлежат GSC Game World.
Любое использование материалов сайта возможно только с разрешения его администрации.
© 2024 Вселенная игры S.T.A.L.K.E.R.
Используются технологии uCoz>