Таблицы. Что это такое и с чем его едят. Часть 1. — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Loxotron (обсуждение | вклад) |
|||
Строка 1: | Строка 1: | ||
− | '''Таблицы | + | '''Таблицы.''' |
Итак. Большинство модеров которые начинают осваивать скриптинг сталкера сталкиваются с таким понятием как таблицы. Таблица - это локальная переменная в которой содержатся те или иные параметры/значения/наборы символов. К примеру: | Итак. Большинство модеров которые начинают осваивать скриптинг сталкера сталкиваются с таким понятием как таблицы. Таблица - это локальная переменная в которой содержатся те или иные параметры/значения/наборы символов. К примеру: |
Версия 10:26, 13 июля 2010
Таблицы.
Итак. Большинство модеров которые начинают осваивать скриптинг сталкера сталкиваются с таким понятием как таблицы. Таблица - это локальная переменная в которой содержатся те или иные параметры/значения/наборы символов. К примеру:
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.