Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Monnoroch 6 Опубликовано 14 Августа 2009 Поделиться Опубликовано 14 Августа 2009 (изменено) Еще хочу уточнить: как правильно проверить,что таблица существует и не пустая? local npc_items = items[npc:id()] if npc_items ~= nil and npc_items ~= {} and table.getn(npc_items) > 0 then return true end return false Я делаю так.Это верно? Изменено 14 Августа 2009 пользователем Monnoroch Ссылка на комментарий
Malandrinus 615 Опубликовано 14 Августа 2009 Поделиться Опубликовано 14 Августа 2009 Еще хочу уточнить: как правильно проверить,что таблица существует и не пустая? tbl = {1,5,8} -- проверяем, что таблица существует и не пустая if tbl and next(tbl) then ... end Добавлено через 33 мин.: table.getn(npc_items) > 0 Это сработает только для тех таблиц, у которых ключи начинаются от единицы и идут непрерывно. Или иными словами, для созданных таким образом: t = {v1, v2, v3, ... и т.д.} - в этой таблице ключи создаются автоматически с автонумерацией от единицы если же я создал таблицу общего вида: t = { [k1] = v1, [k2] = v2, [k3] = v3, и т.д. } или просто добавлял в таблицу значения с произвольными ключами: t[k] = v то это не сработает. В этом случае надо использовать функцию next(table, key). Эта функция возвращает ключ, следующий за key. Если key равен nil (или просто не указан), то вернёт первый ключ. Если в таблице нет ничего, то получим nil, что эквивалентно false в логических выражениях. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Scientist 1 Опубликовано 15 Августа 2009 Поделиться Опубликовано 15 Августа 2009 (изменено) Где можно взять мод динамические сообщения? Для ТЧ. И как можно заставить нпс доставать детектор у аномалий как в чн (анимка "probe_2")? Изменено 15 Августа 2009 пользователем Green Stalker Ссылка на комментарий
Палыч 3 Опубликовано 15 Августа 2009 Поделиться Опубликовано 15 Августа 2009 (изменено) Как в солянке убрать отключение выбросов в фриплее? Изменено 15 Августа 2009 пользователем Палыч Ссылка на комментарий
Wawka 5 Опубликовано 15 Августа 2009 Поделиться Опубликовано 15 Августа 2009 Виталий Зверь В all.spawn на каждый костёр, имеются по три секции, с именами: lights_hanging_lamp, zone_flame_small и space_restrictor. lights_hanging_lamp, это видимо, зона свечения костра, zone_flame_small, собственно сам костёр и space_restrictor - зонка, которая запрещена для неписей (чтобы не сидели в кострах). Координаты для будущего гулага на этом месте, например, можно взять из zone_flame_small. Ну или встать в костёр и снять координаты. Если планируется просто посадить неписей у костра, без каких либо условий (несюжетный гулаг, а так, для фона), то это довольно просто. Для примера, покажу гулаг на эскейпе, у которого имя и тип будут называться, ну допустим, esc_test_lager, гулаг с населением 3 тела. Всё, что останется сделать - поместить смарт в нужный файл alife и прописать свои координаты. Ну можно ещё и названия поменять (все esc_test_lager на свои). В alife создать секцию смарта: [999] ; cse_abstract properties section_name = smart_terrain name = esc_test_lager position = -208.551208496094,-20.0917911529541,-141.64958190918 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 61 distance = 1 level_vertex_id = 44622 object_flags = 0xffffffbe custom_data = <<END [smart_terrain] type = esc_test_lager capacity = 3 END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 1 ; cse_alife_space_restrictor properties restrictor_type = 3 ; se_smart_terrain properties В position, game_vertex_id и в level_vertex_id - подставь координаты из zone_flame_small. Путь (center_point): [esc_test_lager_kamp] points = p0 p0:name = wp00 p0:position = -208.551208496094,-20.0917911529541,-141.64958190918 p0:game_vertex_id = 61 p0:level_vertex_id = 44622 В p0:position, p0:game_vertex_id и в p0:level_vertex_id - подставь координаты из zone_flame_small. Если сможешь сам координаты снять, то можно в паре шагах от костра сделать точку спавна неписей при входе гулага в онлайн (чтобы не рождались в центре пламени), в логике строка path_walk : [esc_test_lager_kamp_task] points = p0 p0:name = wp00 p0:position = -208.551208496094,-20.0917911529541,-141.64958190918 p0:game_vertex_id = 61 p0:level_vertex_id = 44622 Тут должны быть координаты в паре шагов от костра. Логика (можно добавить в любой файл логики гулагов, например в gulag_escape.ltx): [logic@esc_test_lager] active = kamp@esc_test_lager [kamp@esc_test_lager] center_point = kamp path_walk = kamp_task soundgroup = esc_test_lager Где: center_point - сам костёр. Неписи рассаживаются вокруг него, по умолчанию, если не ошибаюсь, радиус составляет 1 метр. Можно и свой прописать - добавить строку radius = и нужную цифру. path_walk - точка спавна неписей при входе гулага в онлайн (снять координаты недалеко от костра). Это необязательный параметр. По умолчанию, если убрать эту строку, неписи будут спавниться в точке center_point. Если это не суть важно, то можно и убрать. soundgroup - точно не знаю зачем, наверное для синхронности "беседы". И самое главное, не забывай, что в логике смартов имя пути пишется без имени гулага. То есть, в данном случае путь называется esc_test_lager_kamp, в нём esc_test_lager_ - имя гулага, а kamp - имя пути. Его то только и вписываем в логику. Ну и загрузка работ (можно так же добавить в имеющийся gulag_escape.script, чтоб свой не подключать): В function load_job(sj, gname, type, squad, groups) добавить: if type == "esc_test_lager" then t = { section = "logic@esc_test_lager", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@esc_test_lager", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@esc_test_lager", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "" } table.insert(sj, t) end В function load_states(gname, type) добавить: if type == "esc_test_lager" then return function(gulag) return 0 end end Ну и в function checkStalker(npc_community, gulag_type, npc_rank, se_obj) добавить: if gulag_type == "esc_test_lager" then return npc_community == "stalker" end Вроде ничего не забыл... В этом случае, если всё сделано правильно, заработает гулаг на три персоны и в него смогут попасть любые неписи, у кого комьюнити stalker. Лагерь начнёт свою работу со стартом новой игры и будет существовать на протяжении всей игры. Ссылка на комментарий
Chainsaw 2 Опубликовано 15 Августа 2009 Поделиться Опубликовано 15 Августа 2009 У меня вопрос:как сделать новую мдель оружия?Есть тема "Создание ХАД модели оружия"... Я ВЕРНУСЬ И НАДЕРУ ВСЕМ ЗАДНИЦЫ (С) УИЛЛИС Ссылка на комментарий
Writer 1 Опубликовано 15 Августа 2009 Поделиться Опубликовано 15 Августа 2009 Stalker Hartman в 3D редакторах. А худ создается чтобы руки в игре отображались.... Есть в игре гулаг заставляющий НПС собирать арты? Правельно пейсать "мадыратарчег", патамукаг проверочнойе слова "красафчег". Ссылка на комментарий
Push85 4 Опубликовано 15 Августа 2009 Поделиться Опубликовано 15 Августа 2009 Stalker Hartman, Создание HUD-модели оружия, также там еще много полезных статей. Возможно всё, ну или почти всё. Ссылка на комментарий
Monnoroch 6 Опубликовано 15 Августа 2009 Поделиться Опубликовано 15 Августа 2009 1 раз такое вижу: ! Cannot find saved game ~~~ try_switch_to_another_section(): error in implementation of scheme 'mob_trader': actor is nil * Log file has been saved successfully! FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...\games\s.t.a.l.k.e.r\gamedata\scripts\dialogs.script:34: attempt to index field '?' (a nil value) Не подскажете что могло пойти не так? Схема 'mob_trader' не менялась. Ссылка на комментарий
Wawka 5 Опубликовано 15 Августа 2009 Поделиться Опубликовано 15 Августа 2009 А логика Сидора правилась? Ссылка на комментарий
Monnoroch 6 Опубликовано 15 Августа 2009 Поделиться Опубликовано 15 Августа 2009 (изменено) WAWKA, неа.я не трогал - только в солянке народной,но там такого нет глюка... Добавлено через 1 мин.: Stalker Hartman, слушай,не говори глупостей,а? отчего это бывает: attempt to index field '?' я знаю. А вот конкретно в моем случае с пояснением выше фатал эррора в логе - не понимаю... ======= вот строка: if db.storage[first_speaker:id()].wounded ~= nil and Изменено 15 Августа 2009 пользователем Monnoroch Ссылка на комментарий
dan 6 Опубликовано 15 Августа 2009 Поделиться Опубликовано 15 Августа 2009 Monnoroch, может ты каким то образом в одну из твоих схем записал туда Сидора. И вот теперь Сидор либо из этой схемы, либо в нее не может попасть. Ссылка на комментарий
Monnoroch 6 Опубликовано 15 Августа 2009 Поделиться Опубликовано 15 Августа 2009 (изменено) dan, В данный конкретный промежуток времени я помимо того,что пишу на форуме тестирую схема "торговля" - на чистой игре - все работает (я даже не тестирую,а ищу анимки пододящие). Точно та же схема в моем аддоне к солянке ни на бит не измененная при разговоре со звездочетом вот такую гадость выдает. (больше я торговли никак не касался кроме этой схемы) Изменено 15 Августа 2009 пользователем Monnoroch Ссылка на комментарий
Kolmogor 5 Опубликовано 15 Августа 2009 Поделиться Опубликовано 15 Августа 2009 Monnoroch, ошибка скорее всего в actor_binder:net_spawn Он корректно не отработал и не заполнил db.actor правильным значением вот и полезли ошибки Просто ты наверное рядом с Сидоровичем находишься - вот на нем и ругнулось Ссылка на комментарий
Prapor11 0 Опубликовано 16 Августа 2009 Поделиться Опубликовано 16 Августа 2009 Люди подскажите как переместить слоты оружия,здоровья,пояс в общем как изменить координаты инвентаря?Видел в моде амк новый инвентарь.С помощью какой программы так сделали? Я ДатчикХабара со stalker-portal Ссылка на комментарий
Push85 4 Опубликовано 16 Августа 2009 Поделиться Опубликовано 16 Августа 2009 Prapor11, программа блокнот называется и плюс фотошоп, открываешь файл (по-моему) inventory_new.xml и inventory_new_16.xml, здесь координаты элементов, ui_inventory2.dds текстура и ui_inventory2.xml - описатель элементов текстуры. Возможно всё, ну или почти всё. Ссылка на комментарий
Taroz 0 Опубликовано 16 Августа 2009 Поделиться Опубликовано 16 Августа 2009 а objt:spawn_ini() разве не должен работать? объект по левелу. Ссылка на комментарий
Monnoroch 6 Опубликовано 16 Августа 2009 Поделиться Опубликовано 16 Августа 2009 А вообще что означает вылет attempt to index field '?' (a nil value) На такой строке: db.storage[npc:id()].тут_схема Ссылка на комментарий
Push85 4 Опубликовано 16 Августа 2009 Поделиться Опубликовано 16 Августа 2009 Monnoroch, скорее всего переменная npc равна nil. Возможно всё, ну или почти всё. Ссылка на комментарий
Prapor11 0 Опубликовано 16 Августа 2009 Поделиться Опубликовано 16 Августа 2009 8push5 спасибо Я ДатчикХабара со stalker-portal Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти