Malandrinus 615 Опубликовано 7 Августа 2010 Поделиться Опубликовано 7 Августа 2010 TREWKO, level_name(level_id) - системное имя уровня по его номеру level_id() - номер текущего уровня switch_distance(<радиус>) - по идее установка радиуса переключения алайфа, но у меня не сработало, работало только изменение из конфига Внятное имя уровня (не системное, а то, которое изображается на карте): game.translate_string(string.lower(alife():level_name(level_id))) Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Mechanic.92 16 Опубликовано 10 Августа 2010 Поделиться Опубликовано 10 Августа 2010 Как в ТЧ проверить, есть ли у актора кровотечение? В ЗП, например, if db.actor.bleeding>0 then... В ТЧ так пробовал - вылет... Ссылка на комментарий
Malandrinus 615 Опубликовано 10 Августа 2010 Поделиться Опубликовано 10 Августа 2010 (изменено) Mechanic.92, Как в ТЧ проверить, есть ли у актора кровотечение? Читать сюда. Я для кого тему делал?! :ny_z_9: Изменено 10 Августа 2010 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
SkyLoader 53 Опубликовано 15 Августа 2010 Поделиться Опубликовано 15 Августа 2010 Привет всем. Скажите пожалуйста, почему неверна эта функция неверна: function set_my_npc() local soNPC = alife():story_object(006) --\берем волка if soNPC then local tT = amk.read_stalker_params(soNPC) if string.find(tT.custom,"esc_stone_lager") then --\проверяем, есть ли непись на этом гулаге? return end tT.custom = "[smart_terrains]\nesc_stone_lager=true\n" amk.write_stalker_params(tT,soNPC) --/ записываем amk.add_spot_on_map(soNPC.id,"red_location", tT.custom) --\ставим метку на пда local oNPC = level.object_by_id(soNPC.id) if oNPC then xr_gulag.resetJob(oNPC) end end end Я хотел, чтобы Волк пошел на гулаг esc_stone_lager. Вылета нету, но это действие гарантированно выносит непися в оффлайн. Как мне вернуть его в онлайн? Я пробовал switch_online(soNPC) - не выходит. Помогите пожалуйста. Ссылка на комментарий
goust 1 Опубликовано 16 Августа 2010 Поделиться Опубликовано 16 Августа 2010 Возможно ли через логику сделать волка бессмертным,если да то как? VODKA connected people... Ссылка на комментарий
iDreD 5 Опубликовано 16 Августа 2010 Поделиться Опубликовано 16 Августа 2010 В ТЧ нет. А в ЗП пишешь это invulnerable = true и всё. Работа в Sculptris 3D [туториал] Страничка на Проза.ру Ссылка на комментарий
goust 1 Опубликовано 16 Августа 2010 Поделиться Опубликовано 16 Августа 2010 кровоSTALKER Спс,а в ТЧ подругому как нибудь можно? VODKA connected people... Ссылка на комментарий
iDreD 5 Опубликовано 16 Августа 2010 Поделиться Опубликовано 16 Августа 2010 (изменено) Можно например назначить Волку иммунитеты от Сахарова. Или скриптом всё время биндить ему параметр health на 1. Изменено 16 Августа 2010 пользователем кровоSTALKER Работа в Sculptris 3D [туториал] Страничка на Проза.ру Ссылка на комментарий
goust 1 Опубликовано 16 Августа 2010 Поделиться Опубликовано 16 Августа 2010 Как их ему назначить? Строгое предупреждение от модератора n6260 Через алл_спавн. В разделе даже есть статья о бесмертных НПС. Юзай поиск. VODKA connected people... Ссылка на комментарий
Tonny 4 Опубликовано 17 Августа 2010 Поделиться Опубликовано 17 Августа 2010 подскажите пожалуйста, есть сталкер. У него вообще нет оружия. Как это можно проверить для оффлайн-обьектов? или только если сталкер - gameobject (через итерацию инвентаря? или можно сразу проверить оружие в слотах 1 и 2 и если нет, то другого и не будет?) ? так вот, у сталкера оружия нет, я спавню ему в инвентарь случайный автомат. Он возьмёт его в руки сам? далее - патроны, если я ему не заспавню патроны, то стрелять ему будет нечем? если заспавню, но они закончатся - тоже стрелять нечем будет? (Неписи стреляют непрерывно, и у них вроде как не заканчивается, но подозреваю что есть какой-то ньюанс, который я упустил) спасибо за внимание. Сообщение от модератора n6260 Патронов у нпс должно быть больше чем на одну обойму. Хотя бы на один патрон. Иначе отстреляет обойму и все. Строгое предупреждение от модератора n6260 Юзай заглавные буквы. Ссылка на комментарий
Tonny 4 Опубликовано 17 Августа 2010 Поделиться Опубликовано 17 Августа 2010 (изменено) Подскажите пожалуйста следующее: в теме "Справочник по функциям и классам" указано, что можно работать со слотами НПС, но код вида local PistolSlot = obj:item_in_slot(1) local AutomaticSlot = obj:item_in_slot(2) не срабатывает, ругается на item_in_slot: [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : l:\stalker-cop\gamedata\scripts\ts_mod_cop.script:230: attempt to call method 'item_in_slot' (a nil value) Задача описана в предыдущем посте, для неписей без оружия заспавнить его случайным образом. for a=1,65534,1 do -- полный перебор local obj = alife():object(a) if obj then if IsStalker(obj) and obj ~= db.actor and obj:alive() and is_object_online(obj) then --только сталкеры, живые и с gamedata local PistolSlot = obj:item_in_slot(1) --ругается :( local AutomaticSlot = obj:item_in_slot(2) if (PistolSlot and PistolSlot:id() == nil) and (AutomaticSlot and AutomaticSlot:id() == nil) then -- тут спавним оружие и патроны end end end end Спасибо за внимание. PS: забыл указать версию: Зов Припяти, 1.6.02 Изменено 17 Августа 2010 пользователем Tonny Ссылка на комментарий
SkyLoader 53 Опубликовано 17 Августа 2010 Поделиться Опубликовано 17 Августа 2010 (изменено) Tonny, вот, как проверить, есть ли оружие в 1 и во 2-ом слоте: local weapon_1 = db.actor:item_in_slot(1) local weapon_2 = db.actor:item_in_slot(2) if (db.actor:active_slot()==1 and weapon_1) and (db.actor:active_slot()==2 and weapon_2) then --\тут спавним оружие и патроны end Теперь под себя подгоняй. Изменено 17 Августа 2010 пользователем SkyLoader Ссылка на комментарий
Malandrinus 615 Опубликовано 17 Августа 2010 Поделиться Опубликовано 17 Августа 2010 Tonny, [error]Description : l:\stalker-cop\gamedata\scripts\ts_mod_cop.script:230: attempt to call method 'item_in_slot' (a nil value local obj = alife():object(a) ... local PistolSlot = obj:item_in_slot(1) --ругается :( Правильно ругается. Объект у тебя серверный, а пытаешься для него вызвать метод клиентского. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Tonny 4 Опубликовано 18 Августа 2010 Поделиться Опубликовано 18 Августа 2010 (изменено) SkyLoader Как раз была проблема в адаптпции под другого сталкера malandrinus Спасибо, понял, помогло. Вопрос N3: Для серверных обьектов можно получить информацию о том, есть ли у них оружие? Вопрос N4: Насколько понимаю, для функции alife():create всё равно - серверный обьект или клиентский, так как передаётся его id, которое одинаковое, так? Вопрос N5: Можно ли перебрать клиентские обьекты менее ресурсоёмко, чем через перебор всех 65534 серверных? Т.е. не через for i = 1,65534 do .... Спасибо за внимание. Изменено 18 Августа 2010 пользователем Tonny Ссылка на комментарий
Charsi 440 Опубликовано 18 Августа 2010 Поделиться Опубликовано 18 Августа 2010 Tonny,перебираешь серверные объекты. Если объект существует и является оружием и его parent_id равно id твоего npc,то значит у этого npc имеется оружие. 4.Так. 5.Обычно клиентские объекты перебирают так - for k,v in pairs(db.storage) do... Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
Tonny 4 Опубликовано 18 Августа 2010 Поделиться Опубликовано 18 Августа 2010 Charsi Понял. То, что надо, спасибо! Строгое предупреждение от модератора n6260 Получите предупреждение за флуд. Ссылка на комментарий
Malandrinus 615 Опубликовано 18 Августа 2010 Поделиться Опубликовано 18 Августа 2010 Tonny, Вопрос N3: Для серверных обьектов можно получить информацию о том, есть ли у них оружие? Вопрос N5: Можно ли перебрать клиентские обьекты менее ресурсоёмко, чем через перебор всех 65534 серверных? Т.е. не через for i = 1,65534 do .... 3) перебор с поиском по родительскому id, как выше подсказали. Можно и по-другому. К примеру, при переходе в оффлайн запоминать ствол в нетпакете серверного объекта. Или вообще сохранять там весь инвентарь. Однако зачем это надо? В оффлайне неписи воевать не могут. Для того, чтобы в оффлайне что-то происходило, надо писать это самому, как это сделано в АМК. 5) нет, если надо перебрать именно все, то иного способа нет. Но опять же, перебор всех объектов - крайне порочная практика. Годится только для стартовой инициализации, которая выполняется один раз или очень-очень редко. Если вдруг возникла необходимость перебрать все объекты, то либо для решаемой задачи производительность не важна, либо выбран неверный способ решения. Charsi, 5.Обычно клиентские объекты перебирают так - for k,v in pairs(db.storage) do... Так можно перебрать не все, а только те, у которых есть логика. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
ФеНиКс 2 Опубликовано 18 Августа 2010 Поделиться Опубликовано 18 Августа 2010 Возможно это обсуждалось, но я не нашёл. по какой причине возникает этот лог: LUA error: ....r. - shadow of chernobyl\gamedata\scripts\_g.script:1196: bad argument #2 to 'format' (string expected, got nil) Ссылка на комментарий
SkyLoader 53 Опубликовано 18 Августа 2010 Поделиться Опубликовано 18 Августа 2010 (изменено) ФеНиКс, возможно, что ошибка в грамматике конфигов, ну и бывает в скриптах. antreg, откуда ты знаешь, что только из за этого? Такой вылет может произойти везде. Изменено 18 Августа 2010 пользователем SkyLoader Ссылка на комментарий
antreg 178 Опубликовано 18 Августа 2010 Поделиться Опубликовано 18 Августа 2010 (изменено) ФеНиКс, Вылет из-за допустимо возможного веса инвентаря нового торговца (создавал нового торговца, признавайся?). Переводится как: --невозможно ходить из-за веса. Не установлены должным образом значения допустимого веса для торговца или не назначен ему класс trader. Если укажешь при каких обстоятельствах вылет и на какой версии ТЧ делаешь эксперименты, то будет более ясно. Предположительно, работаешь на чистом ТЧ без АМК. Очень характерный, в этом случае, вылет, если назначить торговцем простого НПС без присвоения ему класса трейдера и "нагрузить под завязку" хабаром и оружием. Изменено 18 Августа 2010 пользователем antreg "Тайные Тропы 2" техподдержка "Ф.О.Т.О.Г.Р.А.Ф" техподдержка Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти