Viktor_Kris 24 Опубликовано 5 Сентября 2013 Поделиться Опубликовано 5 Сентября 2013 (изменено) Народ, спасибо за помощь, я разобрался. Никто не знает, можно ли в tm_zaton после condlist_0 = complete прописать функцию спавна НПС? Если знаете, скажите пожалуйста, как эту функцию прописать Изменено 5 Сентября 2013 пользователем Viktor_Kris Ссылка на комментарий
Shredder 49 Опубликовано 5 Сентября 2013 Поделиться Опубликовано 5 Сентября 2013 on_complete = %=любая функция из xr_effects% Если там нужной нет - добавь Ссылка на комментарий
karavan 36 Опубликовано 7 Сентября 2013 Поделиться Опубликовано 7 Сентября 2013 Подскажите пожалуйста, как задать костюм как локальную переменную? Корректно ли задать вот таким образом: local novice_soldier_outfit = {"novice_soldier_outfit"} В дальнейшем планирую произвести сравнение такого типа: if current_outfit == novice_soldier_outfit then 1 Ссылка на комментарий
alex5773 1 330 Опубликовано 7 Сентября 2013 Поделиться Опубликовано 7 Сентября 2013 А можно ли сделать всем нпс диалоговое окно с торговлей, вместо этого: "Вон старший, к нему обращайся".? Ссылка на комментарий
Shredder 49 Опубликовано 7 Сентября 2013 Поделиться Опубликовано 7 Сентября 2013 karavan, local novice_soldier_outfit = "novice_soldier_outfit" if current_outfit:section() == novice_soldier_outfit then Ссылка на комментарий
azrael1325 28 Опубликовано 7 Сентября 2013 Поделиться Опубликовано 7 Сентября 2013 @karavan, ты задаешь таблицу. И непонятно, что у тебя current_outfit - имя секции или объект костюма? Предположу, что объект. Тогда local novice_soldier_outfit = {"novice_soldier_outfit"} if current_outfit:section_name() == novice_soldier_outfit[0] then или local novice_soldier_outfit = "novice_soldier_outfit" if current_outfit:section_name() == novice_soldier_outfit then @alex5773, можно. Убрать из логики строку meet = no_meet и прописать в профиль стандартные диалоги, если их там нет. Ссылка на комментарий
karavan 36 Опубликовано 7 Сентября 2013 Поделиться Опубликовано 7 Сентября 2013 Возник вопрос: Как при замене костюма (novice_soldier_outfit) на аналогичный но с другой секцией (novice_soldier_outfit_2) передать второму характеристики первого, т.е. износ и ветку апгрейдов? Возможно ли такое теоретически? Ссылка на комментарий
S.K.Y.M.I.X.X.E.R.S 4 Опубликовано 7 Сентября 2013 Поделиться Опубликовано 7 Сентября 2013 Имеешь в виду такое [novice_soldier_outfit_2]:novice_soldier_outfit . . . . . . . . . Ссылка на комментарий
karavan 36 Опубликовано 7 Сентября 2013 Поделиться Опубликовано 7 Сентября 2013 Да. Только у novice_soldier_outfit_2 по сравнению с novice_soldier_outfit немного изменен визуал. Ссылка на комментарий
Shredder 49 Опубликовано 7 Сентября 2013 Поделиться Опубликовано 7 Сентября 2013 Можно, прочитать нет-пакет одного предмета, а записать другому. Только второй предмет придётся отправить в оффлайн и вернуть в онлайн. Иначе изменения не применяться. Ссылка на комментарий
S.K.Y.M.I.X.X.E.R.S 4 Опубликовано 7 Сентября 2013 Поделиться Опубликовано 7 Сентября 2013 Та это не важно, что прописано в секции (параметры, визуал). Главное зарегистрируй (надеюсь это ЗП) у конфигах stalkers_upgrade_info.ltx, inventory_upgrades.ltx, других. У xr_corpse_detection.script поставь lootable_table["novice_soldier_outfit_2] = true, чтобы нпс могли с трупов забирать Ссылка на комментарий
karavan 36 Опубликовано 7 Сентября 2013 Поделиться Опубликовано 7 Сентября 2013 Понятно. С нет пакетами это хорошая идея но насколько я понимаю, если всю замену производить в рюкзаке у главного героя, то ничего не получится. А вот если например убрать из инвентаря novice_soldier_outfit и спавнить новый костюм novice_soldier_outfit_2, а затем задать характеристики апгрейда второму, предварительно зная характеристики первого. Только вот вопрос как узнать характеристики первого? Делать проверки на все виды апгрейдов? Ссылка на комментарий
Shredder 49 Опубликовано 7 Сентября 2013 Поделиться Опубликовано 7 Сентября 2013 (изменено) Тоже самое, через нет-пакет. Читаешь его у первого предмета, создаёшь второй предмет, пишешь ему нет-пакет первого. Только тут тоже неприятная мелочь. Если предмет спавнить сразу ГГ, то параметры не прочитаются. Поэтому спавнишь его рядом с гг, а как только он выходит в онлайн - переносишь его ГГ.P.S. у меня в моде такое используется, вот фрагмент: function InventoryRegistrator:convert_item(item) local data = m_netpk.get(item, 1):get() local new_section if string.find(item:section(), "_empty$") then new_section = string.match(item:section(), "([%w_]+)_empty$") else new_section = item:section() .. '_empty' end local parent = item:parent() local obj if parent then logf('parent exists [%s]', item:section()) local pos = parent:position() pos.z = pos.z + 10 obj = alife():create(new_section, pos, parent:level_vertex_id(), parent:game_vertex_id()) else obj = alife():create(new_section, item:position(), item:level_vertex_id(), item:game_vertex_id()) end local pk = m_netpk.get(obj, 1) local odata = pk:get() odata.condition = data.condition odata.upgrades = data.upgrades odata.custom_data:setTable(data.custom_data:getTable()) pk:set(odata) if parent then logf('set client_spawn_manager [%s]', new_section) level.client_spawn_manager():add(obj.id, 0, function(id, itm) logf('item [%d] online from client_spawn', id) itm:transfer_item(itm, parent) end) end logf('delete item [%s]', item:section()) if parent and parent:id() == db.actor:id() then inventory_manager.remove_item(item) else _m.remove_item_by_id(item:id()) end return obj end Изменено 7 Сентября 2013 пользователем Shredder Ссылка на комментарий
karavan 36 Опубликовано 7 Сентября 2013 Поделиться Опубликовано 7 Сентября 2013 Shredder Любопытно. Но боюсь с нет пакетами я не справлюсь без помощи опытного скриптера. -------------------------------------------------- Кто разбирался с тем как добавляются апгрейды к костюмам? Насколько я понимаю они именно "добавляются" изменяя свойства костюма. Теоретически, наверное, это так. В общем кто разбирался поясните пожалуйста. Ссылка на комментарий
Shredder 49 Опубликовано 8 Сентября 2013 Поделиться Опубликовано 8 Сентября 2013 (изменено) А ты пример то не посмотрел? odata.condition = data.condition odata.upgrades = data.upgrades odata.custom_data:setTable(data.custom_data:getTable()) Вот тут я новому предмету меняю состояние, переношу апгрейды и custom_data. P.S. установленные апгрейды тоже хранятся в нет-пакете. Изменено 8 Сентября 2013 пользователем Shredder Ссылка на комментарий
buck81 1 Опубликовано 8 Сентября 2013 Поделиться Опубликовано 8 Сентября 2013 Как вычислить координаты камеры demo_record? Ссылка на комментарий
Viktor_Kris 24 Опубликовано 9 Сентября 2013 Поделиться Опубликовано 9 Сентября 2013 Народ, полчаса голову ломал, как телепортировать НПС ("kolya_mech" - его id) в заданную точку! Подскажите функцию для телепорта, плиз Ссылка на комментарий
Shredder 49 Опубликовано 9 Сентября 2013 Поделиться Опубликовано 9 Сентября 2013 Если кратко и без проверок: level.object_by_id(get_story_object_id("kolya_mech")):set_npc_position(vector():set(0,0,0)) Ссылка на комментарий
buck81 1 Опубликовано 9 Сентября 2013 Поделиться Опубликовано 9 Сентября 2013 Народ, перезалейте если у кого есть файл из этого поста. Ссылка на комментарий
Сталкер Лом 356 Опубликовано 10 Сентября 2013 Поделиться Опубликовано 10 Сентября 2013 buck81, Есть такое. Поиск почаще используй, тот же Яндекс... http://rghost.ru/48667589 Работы на Artstation - https://www.artstation.com/artist/stalker_lom Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти