Подскажите, как можно пропарсить таблицу типа:
local foto_array = {
{name="razradotka", info="nil", tbl = {foto1,foto2,foto3}}
}
Чтобы достать из нее значения {foto1,foto2,foto3}
Ma$ter
Как вариант для час**5001001a66cf24ce67c0** print(t)
end[/code]
Ну и на всякий случай. Так можно разобрать таблицы с любым уровнем вложенности таблиц :
[code]function f(t)
for k,v in pairs(t) do
if type(v) == 'table' then
f(v)
else
print(k,v)
end
end
end
f(тут исходная таблица)[/code]
hakerrr
Прямые ссылки запрещены.
отредактировал(а) Gun12: 30-01-2011 21:31 GMT3 час. Не стань номинантом премии Дарвина.
Stalk15
Открою тебе маленький такой секрет... этот метод(с постфиксом sqr ) требует сравнения с квадратом числа, в отличие от метода distance_to() :-)
А вообще у тебя он правильно работает: корень квадратный из 20 равен~4.5
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Тема заняла принадлежащее ей по праву, "важное" место. Никаких поползновений на её статус не было, просто когда разделял топик забыл переместить её наверх.
Вместо того, чтобы разводить "философию" на десяток постов, связались бы лучше с модератором.
___________________
Надеюсь на этом "инцидент" исчерпан и оффтоп закончен:st)
Не обманешь судьбу и не купишь любовь
Ни за жизнь, ни за смерть, ни за горсть серебра.
И холодная сталь ляжет под ноги вновь
Равновесием зла и добра.
Доброй ночи! Я решил удалить через all.spawn некоторые аномалии и, на мой взгляд, лишние предметы (валяющиеся ни к месту броники). Все прекрасно удаляется\заменяется. Удалил я электры из тоннеля на Кордоне, там я планирую заспавнить зомби гражданских, как в билде, игра запустилась, электр нет, все работает. Но недавно я прочитал статью о том, что удалять аномалии и предметы просто так нельзя, что для этого надо еще править скрипты. Меня эта статья несколько сбила с толку, так получается, что удалять аномании и удалять\заменять предметы просто через all.spawn нельзя или все-таки можно? Заранее спасибо.
Я знаю, придет рассвет,
Я знаю, настанет светлый час,
Когда улыбнтся мир
И станет прекрасным все для нас!
Black Auto Если ссылаешься на внешний источник, не уточняя сути, то неплохо бы давать или ссылку или кратко суть из источника по теме вопроса.
1. Наиболее вероятно в прочитанной тобою статье шла речь про удаление аномалий из уже запущенной/созданной игры/сэйва, т.е. из онлайна и/или с текущей локации.
2. При удалении объектов правятся НЕ скрипты, а скриптами обрабатываются дополнительные условия/параметры ... (для аномалий: предварительно отключать их, удалять рестрикторы, ...).
Кратко: Разница удаления из all.spawn'а и скриптами в том, что удаленный объект из all.spawn'а вообще НЕ появляется в новой игре, т.е. по сути объект и не требуется удалять, а значит - и все что с ними связано(!).
Скриптами же наоборот - удаляются только объекты, которые уже в игре (или хотя бы начинают объявляться).
Короче: В твоем случае удаляй аномалии сколько угодно.
Важны только два условия:
1. Изменения all.spawn'а - только для новой игры и для сэйвов (объекты/аномалии уже в игре!) могут быть фатальны ('могут' - не значит обязательно);
2. В оставшихся кодах игры НЕ должно быть завязок (логики, например) на удаленные объекты.
Вопрос, также касающийся аномалий. Нашел интересные наработки, аномалии Event_horizont (синий сияющий шар в Варлабе) и летающий островок (laputa) из ранних эскизов разработчиков. Эти моды затрагивают файлы particles.xr и gamemtl.xr. Редактировать партиклы (файл particles.xr) я научился с помощью программы Particle Editor Tools, но какой программой редактировать файл gamemtl.xr? Заранее благодарю.
Я знаю, придет рассвет,
Я знаю, настанет светлый час,
Когда улыбнтся мир
И станет прекрасным все для нас!
Black Auto
Статья Kamikazze все же расчитана не на новичка, а подразумевает начальные/общие знания/понятия по объектному программированию, поэтому и не уточнены само-собою подразумевающиеся моменты.
Утилитку для работы с 'gamemtl.xr' см.тут: ссылка
(прим: на практике я этим не занимался)
ага, понял. Привет всем. помогите плииз: играю в тайные тропы. в баре только начинаю идти искать графа-тут же вылет! все остальное в норме. если не выполнять миссию с графом, то всё супер. но хочется ведь целиком. может чё подскажете. P.S. а где ждать ответ?
отредактировал(а) grafabashev: 01-02-2011 16:21 GMT3 час.
Всем привет.Такой вопрос про постэффект,вернее про его остановку.
Ф-я стоит на апдейте в бинд_сталкер.
Мне нужно чтобы ф-я срабатывала один раз если здоровье у актёра меньше или равняется 80.
А ф-я соответственно срабатывает бесконечно пока не повысить здоровье.Что очень плохо..
Как мне правильно написать остановку?
function small_wound()
local stope = false
if not stope then
if db.actor.health <= 0.8 then
this.wound_sounds()
this.wound_anm_effects()
level.add_pp_effector("fire_hit.ppe", 0001, false)
stope = true
end
else
stope = false
end
end
И ещё один вопрос насчет проверки на грозу или тучи.
Вот проверка на дождливую погоду:
if level.get_weather()=="rain" then
А вот как проверить грозу или плохую погодку?
:-)
#ДатчикХабара :
А вот как проверить грозу или плохую погодку?
Видел в файле sound_theme.script функцию weather_class(). В ней по силе дождя устанавливают тип погоды:
function weather_class(avail_types, npc)
local type = "weather_good"
if level.rain_factor() < 0.07 then
type = "weather_good"
else
type = "weather_bad"
end
return type
end
Может, не совсем то, но по силе дождя можно для себя установить какая погода будет считаться плохой.
asmodey7_77
В Народной Солянке игровое время управляется/изменяется так же как и в оригинальной игре (и так же как и в моде АМК), т.е. вопрос из банального ФАК'а.
Правится в конфиг-файле '\gamedata\config\alife.ltx' изменением параметра 'time_factor' из секции [alife]. Придется вытащить этот файл из архивов игры (*.dbX).
Поставишь: time_factor = 1
- и будет тебе реальное время.
Вот только зачем? Помимо того, что сутки в игре будут как сутки в реале, у тебя и многие события будут так же растянуты (т.е. увеличены по времени в 10 раз). А значит тот же выброс будет длиться ой как до-о-олго ... Собираешься дневать-ночевать за компом? ;-)
-- Проверяем нужно ли попить. Вызывается каждые 6 игровых минут
function test_for_need_pit()
amk.save_variable("pit",amk.load_variable("pit",0)+2)
amk.g_start_timer("pit",0,0,6)
pit_reduce_power()
end
-- Уменьшение силы, если долго не пил
function pit_reduce_power()
local tmp = amk.load_variable("pit",0)
if tmp > 150 then
if db.actor.power > 0.15 then
db.actor.power = - 0.30
end
if not snd:playing() then
snd:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
end
end
end
-- питье
function pit_item(oid, time)
if alife():object(oid)==nil then
local tmp = amk.load_variable("pit",0) - time*10
if tmp < 0 then tmp = 0 end
amk.save_variable("pit", tmp)
pit_reduce_power()
end
end
Собственно вопрос в функции pit_item в каких строках определяется имя объекта?
(например при использовании объекта "Вода" сбрасывать таймеры)
:-( ну ктонить помогите а, проблема жестокая...СДК Компилирует локацию (После изменения) в исходную (то есть без изменений) причем окно компилятора не вылазеет, создание с нуля приводи к вылету в сетевую игру :blink , Лог не пишется, пробовал все компиляторы... ЛЕ не верно настроено чертов старый... Помогите! в долгу не останусь!
Всем привет.
Можно ли убрать у гранаты партикл взрыва?Вообще убрать?
вот так поставить не получится explode_particles = ;-)
Может есть какой нибудь способ.
Strchi
Может быть хватит засорять топик своими стенаниями по СДК?!
Есть специальный тематический топик: "SDK для игры S.T.A.L.K.E.R.", в нем и пиши, соблю
function news_of_npc_kill(victim)
if (IsStalker(victim) or victim:id()==db.actor:id()) then
local victum_name = victim:character_name()
local level_name = level.name() --\имя_локации
local gde_text = locations_name[level_name]
local dead_news = "Погиб:"..victum_name..""..gde_text
end
db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000)
end
Что тут не так?
отредактировал(а) ДатчикХабара: 02-02-2011 18:15 GMT3 час.
ДатчикХабара
Нужно НЕ путать названия переменных и их значения.
название поля в таблице - это по сути та же переменная, а **5008001a66cf24ce67c0**escape"] = "На кордоне",
["l02_garbage"] = "На свалке",
...
["l11_pripyat"] = "На Припяти"
}[/code]
Artos
В данном случае это будут две идентичные таблицы, поскольку в lua не имеет никакого значения пишется ли строковой ключ таблицы без кавычек и квадратных скобок или же и в кавычках и скобках.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
-- anti_sp_news[math.random(#anti_sp_news)]
function news_of_npc_kill(victim)
if (IsStalker(victim) or victim:id()==db.actor:id()) then
local victum_name = victim:character_name()
level_name = level.name() --\имя_локации
local gde_text = locations_name[level_name]
local dead_news = "Погиб:"..victum_name..""..gde_text
end
db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000)
end
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.