Ulman 5 Опубликовано 12 Мая 2011 Поделиться Опубликовано 12 Мая 2011 Ребята, а можно как то отдельному НПС прописать логику, что бы он допустим в 23.00 шел спать, а в 5.00 вставал? Ссылка на комментарий
_Призрак_ 11 Опубликовано 12 Мая 2011 Поделиться Опубликовано 12 Мая 2011 Да, гугал_**.script или поставить на on_info проверку на время Freedom Ссылка на комментарий
Ulman 5 Опубликовано 12 Мая 2011 Поделиться Опубликовано 12 Мая 2011 _Призрак_, а можно, пожалуйсто, точнее с проверкой на время, а то самому не получается написать. Ссылка на комментарий
_Призрак_ 11 Опубликовано 12 Мая 2011 Поделиться Опубликовано 12 Мая 2011 Ставишь на проверку функцию: if level.get_time_hours() >= 6 and level.get_time_hours() <= 22 then return true -- день и на оборот Freedom Ссылка на комментарий
KD87 718 Опубликовано 12 Мая 2011 Поделиться Опубликовано 12 Мая 2011 TASTAN, чтобы появилась пища для раздумий, поставь в data_packet.pm после строчки 62 (foreach my $p (@_) {) вот такое: print "$p->{name}\n"; Ну а потом выложить текст из консоли, на котором стопорится распаковка. Ссылка на комментарий
TASTAN 1 Опубликовано 13 Мая 2011 Поделиться Опубликовано 13 Мая 2011 KD87, Вот что получилось: E:\game\S.T.A.L.K.E.R\gamedata\spawns>acdc.pl -d all.spawn dummy16 section_name name s_gameid s_rp position direction respawn_time unknown_id parent_id phantom_id s_flags version script_version game_vertex_id distance direct_control level_vertex_id object_flags custom_data story_id spawn_story_id visual_name visual_flags g_team g_squad g_group health dynamic_out_restrictions dynamic_in_restrictions killer_id game_death_time money specific_character trader_flags character_profile community_index rank reputation character_name skeleton_name skeleton_flags source_id holder_id upd:health upd:timestamp upd:creature_flags upd:position upd:o_model upd:o_torso upd:g_team upd:g_squad upd:g_group upd:actor_state upd:actor_accel_header upd:actor_accel_data upd:actor_velocity_header upd:actor_velocity_data upd:actor_radiation upd:actor_weapon upd:num_items Died at stkutils/data_packet.pm line 21. E:\game\S.T.A.L.K.E.R\gamedata\spawns>pause Для продолжения нажмите любую клавишу . . . Ссылка на комментарий
strelok200 0 Опубликовано 13 Мая 2011 Поделиться Опубликовано 13 Мая 2011 Какую логику нужно прописать НПСу чтобы он все игнорировал и мутантов и вообще ВСЁ! Создаю глобальный мод с новыми локациямЭ Ссылка на комментарий
Disord 1 Опубликовано 13 Мая 2011 Поделиться Опубликовано 13 Мая 2011 strelok200, combat_ignore = combat_ignore [combat_ignore] combat_ignore_cond = always Вроде так... Ссылка на комментарий
KD87 718 Опубликовано 13 Мая 2011 Поделиться Опубликовано 13 Мая 2011 TASTAN, ACDC по версии к спавну не подходит. Можешь залить куда-нибудь спавн - я посмотрю, какой он версии. Или попробуй Universal ACDC. Вообще странный вылет. Ссылка на комментарий
PavelSnork 3 Опубликовано 13 Мая 2011 Поделиться Опубликовано 13 Мая 2011 Срочно нужна помощь! Совместил АМК ЗП 0.4 с АРС 0.5.2. Затон работает нормально, но при переходе на любую другую локацию происходит вот такой вылет (также при начале игры на другой локации). ! Cannot find saved game ~~~dbg:_bp:_init():_name='device_pda9929' ! Cannot find saved game ~~~dbg:adding_object_%s ! Cannot find saved game ~~~dbg:adding_object_jup_hiding_place_45 ! Cannot find saved game ~~~dbg:motivator_binder:net_spawn():_self.object:name()='%s' ! Cannot find saved game ~~~dbg:motivator_binder:net_spawn():_self.object:name()='jup_belov9938' ! Cannot find saved game ~~~dbg:adding_object_%s ! Cannot find saved game ~~~dbg:adding_object_jup_belov9938 ! Cannot find saved game ~~~dbg:filename_is_[%s] ! Cannot find saved game ~~~dbg:filename_is_[nil] ! Cannot find saved game ~~~dbg:xr_info_loaded!!! ! Cannot find saved game ~~~dbg:xr_info_loaded!!! ! Cannot find saved game ~~~dbg:setup_gulag_and_logic_on_spawn_obj=%s,_strn_id=%s,_loaded=%s ! Cannot find saved game ~~~dbg:setup_gulag_and_logic_on_spawn_obj=jup_belov9938,_strn_id=2787,_loaded=fa lse ! Cannot find saved game ~~~dbg:disable_invulnerability._npc[%s]_=_[false] ! Cannot find saved game ~~~dbg:disable_invulnerability._npc[jup_belov9938]_=_[false] ! Cannot find saved game ~~~dbg:reset_invulnerability._npc[%s]_=_[%s] ! Cannot find saved game ~~~dbg:reset_invulnerability._npc[jup_belov9938]_=_[false] FATAL ERROR [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 : ....e.r. - Зов Припяти\gamedata\scripts\xr_logic.script:955: bad argument #1 to 'gfind' (string expected, got nil) stack trace: Нашел в xr_logic.script функцию с 955 строкой: function parse_condlist(npc, section, field, src) local lst = {} -- 1) Разбиваем на разделенные запятыми части: local at, to, infop_check_lst, remainings, infop_set_lst, newsect --printf("_bp: src = %s", src) local n = 1 for fld in string.gfind(src, "%s*([^,]+)%s*") do -- вот строка 955. -- Здесь fld это набор infoportions в {} и имя секции, на которую переключиться. lst[n] = {} --printf("_bp: iter %d: fld = %s", n, fld) -- Выделяем список infoportions для проверки: at, to, infop_check_lst = string.find(fld, "{%s*(.*)%s*}") if infop_check_lst then --printf("_bp: infop_check_lst: [%s]", infop_check_lst) -- Выделяем оставшуюся часть поля, т.е. имя секции плюс список infoportions для установки: remainings = string.sub(fld, 1, at - 1) .. string.sub(fld, to + 1) else -- Список infoportions для проверки не был задан, следовательно, ничего не удаляем: remainings = fld end --printf("_bp: remainings: %s", remainings) -- Выделяем список infoportions для установки из remainings: at, to, infop_set_lst = string.find(remainings, "%%%s*(.*)%s*%%") if infop_set_lst then -- Выделяем оставшуюся часть поля, т.е. имя секции: newsect = string.sub(remainings, 1, at - 1) .. string.sub(remainings, to + 1) else -- Список infoportions для установки не был задан, следовательно, remainings и есть имя секции. newsect = remainings end --printf("_bp: newsect: %s", newsect) -- И сразу trim имя секции: at, to, newsect = string.find(newsect, "%s*(.*)%s*") if not newsect then abort_syntax_error_in_cond(npc, section, field) end -- Имя секции теперь можно сохранить: lst[n].section = newsect -- Теперь нужно распарсить infoportions в строке infop_check_lst и -- заполнить массив infop_check: { "infop_name" = true/false }. -- На входе имеем строку вида " +infop1 -infop2 +infop3 ... " lst[n].infop_check = {} parse_infop(lst[n].infop_check, infop_check_lst) -- То же самое для устанавливаемых infoportions: lst[n].infop_set = {} parse_infop(lst[n].infop_set, infop_set_lst) n = n + 1 end return lst end Вот сижу и думаю, что это может означать... Жду ли я Сталкер 2? Хм... Ссылка на комментарий
TASTAN 1 Опубликовано 13 Мая 2011 Поделиться Опубликовано 13 Мая 2011 KD87, Вот залил посмотри чё там с ним... И кстати universal ACDC я тоже пробывал всеравно неработает. Ссылка на комментарий
Disord 1 Опубликовано 14 Мая 2011 Поделиться Опубликовано 14 Мая 2011 (изменено) Здравствуйте! 1. Как можно заставить актора определённое время замереть на месте? Чтобы вообще не двигался? И желательно в присяди... 2. Не подскажете функцию очистки инвентаря актора? Полной очистки - с деньгами и прочим. Изменено 14 Мая 2011 пользователем Disord Ссылка на комментарий
Полтергейст 37 Опубликовано 14 Мая 2011 Поделиться Опубликовано 14 Мая 2011 PavelSnork, надо в самом начале функции дописать вот так: function parse_condlist(npc, section, field, src) if npc == nil or src == nil then return end Ссылка на комментарий
=VENOM= 50 Опубликовано 14 Мая 2011 Поделиться Опубликовано 14 Мая 2011 Disord, 1. для организации "неподвижности" игрока можно использовать функцию set_inactivate_input_time(xxx), в которой xxx это время, в течение которого отключается ввод команд для ГГ. Эта функция используется, например, в ситуации, когда ГГ получает удар в физиономию за слишком настойчивые приставания к сталкерам. Либо напрямую использовать level.disable_input()/level.enable_input(). 2. Вот такая конструкция подойдёт ? function clear_player_inventory() db.actor:iterate_inventory( function(dummy,item) local nameid = item:section() if nameid ~= "bolt" then alife():release(alife():object(item:id()), true) end end, nil) db.actor:give_money(-db.actor:money()) end Ссылка на комментарий
PavelSnork 3 Опубликовано 14 Мая 2011 Поделиться Опубликовано 14 Мая 2011 Полтергейст, после твоей правки я даже не Затон не могу зайти. Вылетает с таким логом: * [prefetch] time: 21356 ms * [prefetch] memory: 110656Kb ! Player name in registry is empty! (InstallUserName) ! Cannot find saved game ~~~dbg:start_game_callback_called ! Cannot find saved game ~~~dbg:start_game_callback_called ! Cannot find saved game ~~~dbg:fill_phrase_table ! Cannot find saved game ~~~dbg:fill_phrase_table * phase time: 21557 ms * phase cmem: 232193 K * phase time: 10 ms * phase cmem: 232193 K * Creating new game... * Loading spawn registry... ! Cannot find saved game ~~~dbg:_se_smart_terrain:_set_load_marker:_%s ! Cannot find saved game ~~~dbg:_se_smart_terrain:_set_load_marker:_171 FATAL ERROR [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 : ....e.r. - Зов Припяти\gamedata\scripts\xr_logic.script:589: bad argument #1 to 'pairs' (table expected, got nil) stack trace: Помогите разобраться с проблемой... Жду ли я Сталкер 2? Хм... Ссылка на комментарий
TRAMP14 1 Опубликовано 14 Мая 2011 Поделиться Опубликовано 14 Мая 2011 А можно как-либо отследить выстрел из оружия в активном слоте? Ссылка на комментарий
Garry_Galler 7 Опубликовано 14 Мая 2011 Поделиться Опубликовано 14 Мая 2011 (изменено) TRAMP14 Можно. Скрипт гравипушки, в частности, основан на отслеживании выстрела (нажатии ЛКМ). Алгоритм прост - сравниваем на апдейте кол-во патронов в стволе и размер магазина. Либо считаем каждый выстрел и опять сравниваем. В скриптах гравипушки используется ствол с магазином на один патрон - так проще отслеживать выстрел. Если же писать скрипт для ствола с реальным магазином - то все несколько сложнее. Изменено 14 Мая 2011 пользователем Garry_Galler Ссылка на комментарий
*Shoker* 322 Опубликовано 14 Мая 2011 Поделиться Опубликовано 14 Мая 2011 У кого есть идеи, как скриптом заставить ГГ выйти из машины? Или может кто то решил движковый вылет на ЧН при смерти игрока в машине? Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
strelok200 0 Опубликовано 15 Мая 2011 Поделиться Опубликовано 15 Мая 2011 Спасибо!А что нужно прописать неписям чтобы во время боя они атаковали с места, а не ходили куда не надо? Создаю глобальный мод с новыми локациямЭ Ссылка на комментарий
gruber 2 481 Опубликовано 15 Мая 2011 Поделиться Опубликовано 15 Мая 2011 strelok200, Посмотри логику всех сюжетных снайперов (соят на месте никуда не дергаясь)и еще там есть тонкость пути у них из одной точки и в месте с отсутствуещей АИ сеткой (не у всех ,но есть такие,к примеру монолитовцы на крыше на радаре и ЧАЭС) Можно и не снайперов заставить ,но не помню какой командой(пример -засада "долга" на патруль "свободы") Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти