Полтергейст 38 Опубликовано 26 Октября 2009 (изменено) Кто-нибудь, помогите разобраться. Ситуация такая: Для некоторых квестовых предметов (не КПК) убрал копирование параметров из секции device_pda, вместо этого теперь копирует из секции attachable2 (поставил item:attachable2 вместо item:device_pda) [attachable2]:identity_immunities GroupControlSection = spawn_group discovery_dependency = $spawn = "equipment\attachable_item" $prefetch = 16 cform = skeleton class = II_ATTCH visual = dynamics\devices\dev_pda\dev_pda.ogf radius = 68 script_binding = bind_physic_object.init cost = 100 can_trade = false quest_item = true inv_name = "Attachable_item" inv_name_short = "Attachable_item" inv_weight = 0.5 ph_mass = 0.5 inv_grid_width = 2 inv_grid_height = 1 inv_grid_x = 16 inv_grid_y = 12 attach_angle_offset = -1.303,0.107,-1.702 ;устанавливается в радианах Angle*PI/180 attach_position_offset = 0.14,0.001,0.02 attach_bone_name = bip01_l_hand auto_attach = false В результате игра упорно не хочет засчитывать мне квест на поиск материалов для долговского техника. Судя по всему, счётчик найденных предметов тоже не идёт, т.к. не выскакивает сообщение "задание обновлено". Новую игру начинал, не помогает. Пробовал поставить quest_item = false, выложить и снова взять предметы - тоже не помогает. Что я делаю не так? Изменено 26 Октября 2009 пользователем Полтергейст Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 27 Октября 2009 Квест смотрел, понял только, что глючит счётчик предметов (configs\scripts\jupiter\jup_b200_brought_counter.ltx). Не могу понять почему это происходит. Вроде после этих изменений меняется только класс с S_PDA на II_ATTCH, больше ничего. Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 23 Декабря 2010 (изменено) Кто-нибудь знает, каким образом в ЗП задаётся анимация раненого в xr_wounded и анимация сидения у костра? Как это всё согласовано со state_mgr и почему эти анимации не хотят работать при переносе state_mgr из ЗП в ТЧ? ------ combat_ignore_cond = false Скорее всего это и есть ошибка. Если вам нужно сделать combat_ignore без условий, ставьте combat_ignore_cond = always Если он вам вообще не нужен - уберите эту строку. Изменено 23 Декабря 2010 пользователем Полтергейст Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 23 Декабря 2010 для каждого непися из сквада нужно писать работу Да надпись не помогает( [smart_terrains] none = true Надпись эта, насколько я знаю, будет работать только в ТЧ, и то не факт, что непись не зарулит в случайный смарт. Вам нужно спавнить непися не отдельно, а в составе squad'а. Описания сквадов в squad_description_имя_уровня.ltx, поле start_position в simulation.ltx отвечает за то, в каком смарте будет создан сквад.) Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 24 Декабря 2010 в котором хранится список дверей которые могут открывать НПЦ Знаю, что хранится это в db.script, таблица level_doors. Откуда заполняется - не знаю, скорее всего в скрипте ph_door. Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 25 Декабря 2010 (изменено) Полтергейст, просил же не писать всякий бред коль не знаешь! Открой db.script и посмотри. Там есть вот такая строка с описанием: level_doors = {} -- Содержит список всех дверей на уровне (чтобы нпс могли по нему пробегаться и открывать двери, рядом с которыми они стоят. А ph_door это скрипт логики работы дверей! Там тоже идёт обращение к этому параметру, но только чтение (логичнее было бы и запись сделать там же). Запись идёт в bind_physic_object.script: if self.object:section() == "physic_door" then db.level_doors[self.object:id()] = self.object:position() end Изменено 25 Декабря 2010 пользователем Полтергейст Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 29 Декабря 2010 А чем вообще GroupControlSection = spawn_group отличается от GroupControlSection = spawn_group_zone ? Вроде секция spawn_group совсем не отличается от spawn_group_zone. Или их имена что-то значат для движка? Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 12 Января 2011 target_smart = agr_sim_19, agr_sim_18, agr_sim_22 Как сделать, чтобы собаки выбирали разные смарты? Насколько я помню, надо вместо запятых ставить двоеточие: target_smart = agr_sim_19:agr_sim_18:agr_sim_22 (squad последовательно пройдётся по этим смартам в порядке их расположения в строке target_smart) Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 22 Января 2011 Вся фишка в mob_walker, mob_home что в именах путей нужно указывать только концовки, без названия смарта Это не только в mob_* так делается. Так работают все схемы, использующие пути смартов. Принцип прописывания имён путей можно проследить в скрипте gulag_general. Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 22 Января 2011 Только не {!black_screen}, а %!black_screen%. В фигурных скобках условия, между %% - действия. Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 27 Января 2011 Тупо добавить в db таблицу level_changers = {}. После этого в se_level_changer в on_register() поставить db.level_changers[self:name()] = self и соответственно на on_unregister() ставим db.level_changers[self.id] = nil. После этого можно вот таким циклом for k,v in pairs(db.level_changers) do if k == "имя объекта, для которого создаём отметку на карте" then level.map_add_object_spot_ser(v.id,"имя отметки на карте","Текст, которым метка подписывается в PDA") end end Хотя можно и без цикла обойтись - просто запрашивать значение (так быстрее): local name = "имя объекта, для которого создаём отметку на карте" if db.level_changers[name] ~= nil then level.map_add_object_spot_ser(db.level_changers[name].id,"имя отметки на карте","Текст, которым метка подписывается в PDA") end Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 23 Февраля 2011 Вобщем я понял, какие сквады дохнут от выброса на новых локах, а какие нет. Дохнут те, что онлайн, остальные целые и невредимые. Так? Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 26 Февраля 2011 это использовании функции create_squad из скрипта xr_effects Это просто заглушка, перенаправляющая на функцию sim_board.create_squad. Нужна для того, чтобы можно было вызывать из логики. Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 10 Марта 2011 У меня в ТЧ такое было после правки скриптов. Бывает при движковых ошибках при работе с пакетами, могут быть и другие причины. Проблема может быть в этой строке: dbg:squad_%s_enter_smart_%s._quan_=_%s скорее всего там nil, потому что %s не заменияется тем, чем надо. Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 11 Марта 2011 ну так в чем ошибка? Если в логах %s не заменяется на строку, значит либо что-то не так с функцией вывода в лог, либо это значение, которое должно заменить %s, равно nil. В аргументах желательно писать tostring, если это число или что-то ещё. Например, у меня есть такой "специальный вылет": abort("Very big problems with stalker %s", tostring(self.object:id())) Вот это "Very big problems with stalker %s" выводится в лог, но %s успешно заменяется на id объекта. Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 13 Марта 2011 Звуковые файлы потерялись Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 14 Марта 2011 (изменено) А ничего, что all.ltx должен быть в той же папке, что и компилятор? Путь-то не указан... И ещё: советую всегда в начале батников писать @echo off, это избавит от лишней информации в окне командной строки. Не обязательно, нужно всего лишь батник положить в папку с all.spawn, а в нем указать путь до acdc.pl. Куфзук Изменено 14 Марта 2011 пользователем Куфзук Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 20 Марта 2011 А что тут думать, в xr_motivator в hit_callback проверяем "who" по clsid. Если это аномалия - мочим npc. Кстати, как сделать, чтобы аномалии реагировали на пули? Или чтобы пули сами отклонялись от первоначального направления. С ракетой от гранатомёта такой трюк проходит, особенно если сначала потревожить аномалию, а потом стрельнуть сквозь неё. А вот с пулями как? Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 21 Марта 2011 Подскажите пожалуйста, как сделать проверку жив/мертв монстр? В вашем случае только по story_id: local stobj =alife():story_object(story_id_монстра) if stobj then if stobj:alive() then --' Действия, если монстр жив else --' ... если мёртв end end Поделиться этим сообщением Ссылка на сообщение
Полтергейст 38 Опубликовано 16 Июля 2011 А можно ли воткнуть выключение лампы при попадании в неё? Ставил вызов из hit_callback - не работает. Поделиться этим сообщением Ссылка на сообщение