*Shoker* 322 Опубликовано 9 Августа 2011 Поделиться Опубликовано 9 Августа 2011 (изменено) Так ведь есть же в ТЧ в оригинале: --' Функция вызывается для каждого предмета, если вернет false то предмет удалится. function keep_item(npc, item) ... local item_id = item:id() local item_in_slot = npc:item_in_slot(1) if item_in_slot ~= nil and item_in_slot:id() == item_id then item:unload_magazine() --' Тут надо уменьшить кондишн оружия item:set_condition((math.random(15)+75)/100) return true end item_in_slot = npc:item_in_slot(2) if item_in_slot ~= nil and item_in_slot:id() == item_id then item:unload_magazine() --' Тут надо уменьшить кондишн оружия item:set_condition((math.random(15)+75)/100) return true end ... end А, если дело касается раненных, то тут по умолчанию нету функции. Без извращений не получится, т.к выкидывание оружия скорее всего происходит через анимацию и state_mgr. Извратится можно но сложно, включая то, что состояние оружия будет каждый раз менятся, с каждым выкидыванием, если всякие проверки не делать на то, что оружие уже было хоть раз выкинуто и ему выставлен кондишн был. Можешь глянуть xr_wounded. Изменено 9 Августа 2011 пользователем Cyclone Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
=VENOM= 50 Опубликовано 10 Августа 2011 Поделиться Опубликовано 10 Августа 2011 Ulman, вот так должна выглядеть таблица в файле xrs_medic.script (чистая версия, с добавлением одного "больного"): local excluded_npcs={ esc_fox=true, esc_vagon_wounded=true, gar_bandit_stroyka3=true, gar_wounded_bandit=true, val_sos_wounded=true, val_escort_bandit_halfdead=true, vasya_pupkin = true } Вместо vasya_pupkin вставь имя своего "больного". Всё должно работать. Либо выложи свой вариант этого скрипта, возможно, в нём уже кто-то поковырялся шаловливыми ручками, и просто удалил проверку на "бесхозных больных". Ссылка на комментарий
Ulman 5 Опубликовано 10 Августа 2011 Поделиться Опубликовано 10 Августа 2011 Вот ссылка на мой скрипт, я вроде ничего в нём не делал. Но вот меня всё же волнует то, от куда надо имя брать. Ссылка на комментарий
Ндр 3 Опубликовано 10 Августа 2011 Поделиться Опубликовано 10 Августа 2011 Shoker, ладно, спасибо большое. Значит без этого обойдусь Ссылка на комментарий
Disord 1 Опубликовано 10 Августа 2011 Поделиться Опубликовано 10 Августа 2011 Ulman, в спавне, когда спавнишь Смотри: section_name = stalker_sakharov name = yan_stalker_sakharov position = 29.4788303375244,-11.6650133132935,-272.279113769531 direction = 0,-1.57079637050629,0 name - это и есть имя. Ссылка на комментарий
Ulman 5 Опубликовано 10 Августа 2011 Поделиться Опубликовано 10 Августа 2011 (изменено) Ну вот я так и думал, только это не помогает, его весь бар сбегается лечить. Может в его "свойствах" что то не так? Вот его секция спавна: [13050] ; cse_abstract properties section_name = stalker name = bar_bar_psih position = 115.516822814941,-5.1480016708374,11.9383907318115 direction = 0,0,0 ; cse_alife_trader_abstract properties money = 5000 character_profile = bar_psih ; cse_alife_object properties game_vertex_id = 1239 distance = 4.19999980926514 level_vertex_id = 33756 object_flags = 0xfffffff7 custom_data = <<END [smart_terrains] none = true [logic] cfg = scripts\bar_psih.ltx END story_id = 517 ; cse_visual properties visual_name = actors\stalker_zombi\stalker_zombie4 ; cse_alife_creature_abstract properties g_team = 0 g_squad = 5 g_group = 27 health = 1 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = 115.516822814941,-5.1480016708374,11.9383907318115 upd:o_model = 0 upd:o_torso = 0,0,0 upd:g_team = 0 upd:g_squad = 5 upd:g_group = 27 ; cse_alife_monster_abstract properties base_out_restrictors = bar_restrictor upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0 ; cse_alife_human_abstract properties predicate5 = 2,1,1,0,2 predicate4 = 1,2,2,2 ; cse_ph_skeleton properties upd:start_dialog = ; se_stalker properties И вот его логика: [logic] active = walker@start [walker@start] path_walk = bar_bar_psih_walk path_look = bar_bar_psih_look wounded = wounded@pre_medkit meet = meet@pre_medkit on_info = {+bar_psih_nopain} walker@nopain [meet@pre_medkit] use = true use_wpn = true [wounded@pre_medkit] hp_state = 100|psycho_pain@bar_psycho_pain hp_state_see = 100|psycho_pain@bar_psycho_pain psy_state = 0|psycho_pain@bar_psycho_pain hp_victim = 100|nil hp_cover = 100|false hp_fight = 100|false help_dialog = nil [walker@nopain] path_walk = bar_bar_psih_walk path_look = bar_bar_psih_look wounded = wounded@nopain meet = meet@nopain on_info = {+bar_psih_suicide} walker@suicide [wounded@nopain] hp_state = 100|psycho_pain@nil hp_state_see = 100|psycho_pain@nil psy_state = 0|psycho_pain@nil hp_victim = 100|nil hp_cover = 100|false hp_fight = 100|false help_dialog = nil [meet@nopain] use = true use_wpn = true meet_dialog = bar_bar_psih_start_gorbun [walker@suicide] path_walk = bar_bar_psih_walk path_look = bar_bar_psih_look wounded = wounded@suicide [wounded@suicide] hp_state = 100|psycho_shoot@bar_psycho_goodluck hp_state_see = 100|psycho_shoot@bar_psycho_goodluck psy_state = 0|psycho_shoot@bar_psycho_goodluck hp_victim = 100|nil hp_cover = 100|false hp_fight = 100|false synsound = psycho_shoot@bar_psycho_goodluck help_dialog = nil Может тут что то намудрил? Ничего там не намудрили. Просто он у тебя и правда псих. Дело в том, что его логика целиком опирается на схему wounded, а это схема раненого, только написанная под определенный сценарий, если тебе нужны его анимации суицида и т.д. переписывай логику, если нет - просто убери эту схему от туда. ColR_iT Добавлено через 251 мин.: А на что тогда можно заменить, а то wounded можно допустим заменить на анимки, а вот что с суицидом делать? Добавлено через 325 мин.: Ребята, полный ахтунг, все мои предыдущие вопросы могут подождать, но этот нет, короче, поймал я безлоговый вылет, вот последние строки в логе: ! Unknown command: *INFO:TRADE [bar_dolg_ivancov]: buy condition = generic_buy * Log file has been saved successfully! ! Unknown command: *INFO:TRADE [bar_dolg_ivancov]: sell condition = generic_sell * Log file has been saved successfully! ! Unknown command: *INFO:TRADE [bar_visitor_4]: buy condition = generic_buy * Log file has been saved successfully! ! Unknown command: *INFO:TRADE [bar_visitor_4]: sell condition = generic_sell * Log file has been saved successfully! ! Unknown command: *INFO:TRADE [bar_bar_psih]: buy condition = generic_buy * Log file has been saved successfully! ! Unknown command: *INFO:TRADE [bar_bar_psih]: sell condition = generic_sell Помогите пожалуйста, заранее бесконечно-огромное спасибо. Изменено 10 Августа 2011 пользователем ColR_iT Ссылка на комментарий
*Shoker* 322 Опубликовано 11 Августа 2011 Поделиться Опубликовано 11 Августа 2011 Торговлю трогал? Попробуй на всякий пожарный снести все trade_ файлы временно. В частности что то возможно связанное с психом, т.к он почему то последний. Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Ulman 5 Опубликовано 11 Августа 2011 Поделиться Опубликовано 11 Августа 2011 Что то я вообще ничего уже не пойму, теперь с теми строками всё нормально, последние теперь такие: ! Unknown command: *INFO:TRADE [bar_bar_psih]: buy condition = generic_buy * Log file has been saved successfully! ! Unknown command: *INFO:TRADE [bar_bar_psih]: sell condition = generic_sell * Log file has been saved successfully! ! Unknown command: *INFO:TRADE [bar_visitor_3]: buy condition = generic_buy * Log file has been saved successfully! ! Unknown command: *INFO:TRADE [bar_visitor_3]: sell condition = generic_sell * Log file has been saved successfully! ! Unknown command: *INFO:_bp: enable_scripts: object 'inventory_box4458' has NO external configuration file, using '<customdata>' * Log file has been saved successfully! ! Unknown command: *INFO:HIT SECTION [nil] * Log file has been saved successfully! ! Unknown command: *INFO:DEBUG: object 'inventory_box4458': activate_by_section: looking for section 'nil' * Log file has been saved successfully! ! Unknown command: *INFO:_bp: reset_generic_schemes_on_scheme_switch: npc:name()='inventory_box4458' И ещё, что то я этого тоже не пойму, это последние строки в логе, или ещё может какая то есть, просто во время вылета она не успела сохраниться? Ссылка на комментарий
Kirag 39 Опубликовано 11 Августа 2011 Поделиться Опубликовано 11 Августа 2011 Ulman При вылете без лога теряются все сообщения, которые были туда выведены после последнего выполнения flush. Но вполне может быть и такой вариант, что в лог из того места (черт знает откуда - вариантов море) просто не выводится вообще ничего. В таком случае лог - просто пыль в глаза. В твоем случае, возможно, так и есть. Вспоминай, что менял в последнее время. Кстати, про ситуацию, в которой поймался вылет, у тебя ни полслова. Если совсем рандомный - плохо дело. На всякий случай пробегись по биндерам (всего подряд, наверное - намеков на причину никаких) п поставь вывод в лог на начало (список значений аргументов крайне желателен) и конец (если что-то возвращает - перед return, список возвращаемых значений.) каждой функции - есть надежда понять, где дохнет. Тогда будет проще понять, из-за чего... Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
Ulman 5 Опубликовано 11 Августа 2011 Поделиться Опубликовано 11 Августа 2011 Лог был небольшой, когда файл лога весит ~7mb, тогда информация не выводится уже, и просто вылетает(проверено на себе). А у меня в данных случаях оно не превышает 1mb. И ещё, вылет очень рандомный и что я заметил либо при переходе на локацию вылетает в момент когда даже не загорелась надпись "старт сервера". Либо как в последнем случае я перехожу на локацию и где то через секунд 5 игры вылет. НО если такой сейв загрузить 2 раза(вроде так, может совпадение), то он абсолютно нормально загружается, но после нескольких загрузок этого же сейва может опять начать вылетать и тогда опять надо загружать его 2 раза. Я вот думаю, может есть надежда на то что вылет не из-за скриптов? И ещё, я вот сейчас, пока ходил на море, оставил игру включённой, где то часа 2 меня не было, вернулся, игра абсолютно нормально себя вела ничего не вылетело никаких "слётов" апдейта и т.д. И я так делал уже несколько раз, игра не вылетала. Я вот думаю,наверно если бы это были виноваты скрипты, то оно бы вылетело давным давно? Кстати, всё время я пользуюсь услугами проводника(New guiders mod), то есть только через него хожу может ли он в этом быть виновен? Kirag, а на счёт апдейта, попробовать только в bind_stalker или вообще по всем пройтись? Просто во втором случае это очень трудно, так как я не уверен, что где то ещё, что то добавлял от себя, кроме как в bind_stalker. P.S. Извините за такое количество вопросов в одном посте, но просто такое дело, что я один и не справлюсь. Ссылка на комментарий
*Shoker* 322 Опубликовано 11 Августа 2011 Поделиться Опубликовано 11 Августа 2011 (изменено) Ну у тебя очень плохая ситуация. Тут советовать особо нечего. Вылет рэндомный, но если часто появляется на одном и том же сейве, есть шанс отловить. Возможно имеет смысл, чтобы убедится, что ошибка в скриптах, убрать как можно больше скриптов (чем меньше останется, тем лучше) и убирая их, тестировать игру. Может придётся начать новую игру (уже когда все возможные скрипты уберёшь, а вылет будет продолжаться) и занаво плести до места вылета и ловить его там. Если повторится - возможно в конфиге дело, если нет, то скорее всего скрипты. Впрочем не исключены моменты, когда одно связанно с другим, так что опять таки... это уже на удачу считай задача. На будущее советую тебе, при добавлении модов в скрипты, не просто копировать и совмещать их в ориг. скрипты, а добавлять всё в свои отдельные и автономные скрипты, а в ориг. скриптах писать лишь вызовы (колбеки) в твои скрипты. Таким образом можно будет, в случаи чего, просто в одном твоём скрипте всё отключать и удалять, а не вычищать ориг. скрипты от изменений. Хороший пример - Simbion Mod от Artos'а Изменено 11 Августа 2011 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
=VENOM= 50 Опубликовано 12 Августа 2011 Поделиться Опубликовано 12 Августа 2011 Не имея общей картины, могу посоветовать только то, как поступаю сам. Как только довожу "до ума" какую-либо новую фишку (а зачастую даже и в процессе разработки) я всегда делаю резервное копирование данных. Как только начинается очередной геморрой, распаковываю работоспособную версию, и легко и просто нахожу, в чём... нет, не собака, а где сам порылся, и как именно всё испортил . Частенько помогает. Скрипт хStream'а просмотрел, ничего кривого не обнаружил. А к остальным "зарезервированным" персонажам медики тоже сбегаются, или нет? Ссылка на комментарий
Ulman 5 Опубликовано 12 Августа 2011 Поделиться Опубликовано 12 Августа 2011 =VENOM=, нет, только этого психа лечат. Ссылка на комментарий
Kirag 39 Опубликовано 12 Августа 2011 Поделиться Опубликовано 12 Августа 2011 Ulman Должен тебя расстроить - именно по всем биндерам. Только апдейтом и только актора дело не обойдется. Нужны еще как минимум net_spawn и net_destroy - а вдруг вылет происходит в момент перехода чего-то неизвестного в онлайн/оффлайн? Кстати, и эффект будет рандомного вылета - неизвестно, что это и где, когда ему взбредет в голову перейти в онлайн, да и от актора это не зависит. Также не помешают функции save и load - возможно, при загрузке объекта ему прописывается какая-нибудь ахинея, со всеми вылетающими. Другие объекты, кроме актора, тоже надо проверять - скажем, у сталкера есть логика, а она обрабатывается в скриптах, данные из конфигов тоже могут там обрабатываться - ну, ты понял, к чему я. Начать можно, конечно, и с апдейта актора, но вообще-то ты ищешь иголку в стоге сена, врядли она найдется в первом же удобном для поиска пучке травы... Кстати, насчет переиграть с более раннего сейва и/или с НИ - идея толковая. Это технически проще (можно бессмертие поставить, чтоб сильно долго не было), и вероятность конкретного битого сейва ты исключаешь. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
Ulman 5 Опубликовано 12 Августа 2011 Поделиться Опубликовано 12 Августа 2011 Kirag, да вроде всё обошлось, похоже всё таки виноват проводник, я оббегал весь бар, там где вылетало, потом на склады бегал, вернулся, ещё побегал по бару, посейвился позагружал его так что вроде всё в порядке, по крайней мере очень надеюсь. А вот что всё же делать с Психом моим не подскажете? Ссылка на комментарий
Stalkersof 178 Опубликовано 13 Августа 2011 Поделиться Опубликовано 13 Августа 2011 Уважаемые гуру подскажите. Можно ли сделать логику нпс без алл.спавн к сожалению не как не удается его вскрыть перепробывал много программ и не одна не подошла. Нпс нужны для участия в квесте. Они будут спавнятся скриптом. Идея такая заспавнить в квесте из диалога несколько нпс чтоб жизнь медом не казалась. Так вот до места идти далеко. И нпс со стандартной логикой разбегаются кто куда. Можно ли сделать логику чтоб они стояли вместе спавна а при приблеженнии ГГ среагировали и дали ему бой. Без использования алл спавн. Если не трудно пример дайте пожалуста. [esc_kanibal3]:stalker_sakharov $spawn = "respawn\esc_kanibal3_spawn" character_profile = esc_kanibal5 spec_rank = master community = stranger custom_data = scripts\new\esc_kanibal_mono.ltx --логика Freeplay Graphic Mod(FGM) Ссылка на комментарий
Ulman 5 Опубликовано 13 Августа 2011 Поделиться Опубликовано 13 Августа 2011 И ещё вот такая неувязко-проблема появилась, у меня стоит AI additions - Rulix (Bak), когда НПС меняет винтовку на пистолет, то как я понял винтовка пропадает навсегда, потому что у них в продаже появляются магазины с патронами. Чего я так думаю, что это связанно, потому что когда у НПС есть оружие и патроны к нему, то патроны он не продаёт. Да и когда враг находится от НПС на большом расстоянии, он должен достать винтовку, но такое не происходит, он продолжает стрелять из пистолета. Чего с этим делать? И вопрос с Психом меня так же волнует. Заранее огромное спасибо Ссылка на комментарий
*Shoker* 322 Опубликовано 13 Августа 2011 Поделиться Опубликовано 13 Августа 2011 Stalkersof Со стандартными схемами такого не сделаешь. Либо распаковывай как можешь спавн, либо учи Lua и редактируй схемы поведения... Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Artos 99 Опубликовано 13 Августа 2011 Поделиться Опубликовано 13 Августа 2011 (изменено) Ulman Оружие, которое не использует НПС в схеме менеджера оружия (AI additions - Rulix (Bak)) не пропадает навсегда. По крайней мере так при штатной работе схемы. Это оружие перемещается в 'хитрый' ящик-хранилище и лежит там. В зависимости от ситуации НПС может менять оружие 'в руках' на более подходящее оружие из ящика. Все это для игрока (тебя) незаметно. При сэйвах игры возможны некоторые комбинации условий, когда оружие из ящика не будет возвращено НПС и ... оно действительно пропадет навсегда. Если твой НПС не достает из ящика более подходящее оружие, то возможны вариации - НПС (точнее менеджер оружия) не считает его более подходящим, или в оружии нет патронов, или оно действительно исчезло при сохранении. Но твой вопрос интересен! Действительно, при разговоре/торговле НПС не меняет оружия и вполне может продать 'последний патрон' к оружия в ящике (ведь для него этого оружия не существует) и в последующем и патроны в магазине возвращенного оружия запросто могут кончиться. Нужно будет доработать ... :-) Ну а с твоим Психом, которого лечат - тебе дали дельный совет с внесением его в табличку схемы: local excluded_npcs={ esc_fox=true, esc_vagon_wounded=true, gar_bandit_stroyka3=true, gar_wounded_bandit=true, val_sos_wounded=true, val_escort_bandit_halfdead=true, bar_bar_psih = true --/ это твой Псих! } - если его имя именно таково ('bar_bar_psih') - его никак не могут лечить этой схемой. Ищи тогда или ошибку с внесением в табличку или дублера схемы лечения. Чтобы его не обирали - требуется аналогично запретить в схеме собирательства (обычно это watcher_act.script). Однако там в кодах придется создавать такую аналогичную табличку исключений самому и добавлять в условия. Изменено 13 Августа 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Stalkersof 178 Опубликовано 13 Августа 2011 Поделиться Опубликовано 13 Августа 2011 Stalkersof Со стандартными схемами такого не сделаешь. Либо распаковывай как можешь спавн, либо учи Lua и редактируй схемы поведения... Да все бы ничего. Но точки привязки в аллспавн. по идее достаточно взять подходящую схему(логику нпс их достаточно в моде) Но вот привязка может есть какие нибуть способы обойти или не использовать path_walk = graf_walk path_look = graf_look Или может есть какие специальные флаги стандартные. Извените если глупость но не понимаю пока логику надо разбираться. Freeplay Graphic Mod(FGM) Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти