Таблицы. Что это такое и с чем его едят. Часть 1. — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
(орфография) |
Loxotron (обсуждение | вклад) |
||
Строка 54: | Строка 54: | ||
'''Позже продолжу. iDreD aka кровоSTALKER.''' | '''Позже продолжу. iDreD aka кровоSTALKER.''' | ||
+ | |||
+ | [[Категория:Скрипты]] |
Версия 03:52, 3 июля 2010
Таблицы. Часть 1.
Итак. Большинство модеров которые начинают осваивать скриптинг сталкера сталкиваются с таким понятием как таблицы. Таблица - это локальная переменная в которой содержатся те или иные параметры/значения/наборы символов. К примеру:
local variables = {1, 2}
Примечание: таблицы можно использовать как за функцией, так и внутри неё. В нашем случае таблица содержит набор чисел 1 и 2. Что же с ними можно сделать?
function table() local variables= {1, 2} --наша таблица rezultat = variables[math.random(table.getn(variables))] --rezultat локальная переменная. if rezultat == 1 then news_manager.send_tip(db.actor,lose_text, nil, nil, 10000) and db.actor:give_info_portion("lose") end if rezultat == 2 then news_manager.send_tip(db.actor,win_text, nil, nil, 10000) and db.actor:give_info_portion("win") end end
Поясню: variables[math.random(table.getn(variables))] этот оператор позволяет взять рандомное значение из данной таблицы. Тобишь случайно взять либо число 1, либо число 2.
if rezultat == 1 then news_manager.send_tip(db.actor,lose_text, nil, nil, 10000) and db.actor:give_info_portion("lose") end if rezultat == 2 then news_manager.send_tip(db.actor,win_text, nil, nil, 10000) and db.actor:give_info_portion("win") end
Определяет значение взятое из таблицы, и в зависимости от результата присылает нам то или иное сообщение (news_manager.send_tip(db.actor,***, nil, nil, 10000)) и даёт тот или иной инфопоршень (db.actor:give_info_portion("***") end).
==
Это оператор сравнения. В нашем случае это "равно". Так же есть операторы:
> - больше.
< - меньше.
>= - больше или равно.
<= - меньше или равно.
~= - не равно.
Сравнивать можно только числа или локальные переменные с присвоенными к ним числами.
На этом примере вы можете создать простейшую функцию спауна:
local stalker_types = {"bread", "kolbasa", "conserva", "vodka"}
function spawn_item() alife():create(stalker_types[math.random(4)],vector():set(-0.112,0.477,-215.563),174943,265) end
Как видите таблица используется вне функции, но можно и в самой функции. В данном примере в определённой точке с координатами (-0.112,0.477,-215.563),174943,265) заспаунится определённый предмет из списка. В эту таблицу можно внести как сталкеров, так и мутантов.
Позже продолжу. iDreD aka кровоSTALKER.