Таблицы. Что это такое и с чем его едят. Часть 1. — S.T.A.L.K.E.R. Inside Wiki

Таблицы. Что это такое и с чем его едят. Часть 1.

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск

Таблицы. Часть 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.

Другие места
LANGUAGE