Перейти к контенту

[CoP] Ковыряемся в файлах


Halford

Рекомендуемые сообщения

Кто-нибудь, помогите разобраться. Ситуация такая:

Для некоторых квестовых предметов (не КПК) убрал копирование параметров из секции 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, выложить и снова взять предметы - тоже не помогает. Что я делаю не так?

Изменено пользователем Полтергейст

Поделиться этим сообщением


Ссылка на сообщение

Квест смотрел, понял только, что глючит счётчик предметов (configs\scripts\jupiter\jup_b200_brought_counter.ltx). Не могу понять почему это происходит. Вроде после этих изменений меняется только класс с S_PDA на II_ATTCH, больше ничего.

Поделиться этим сообщением


Ссылка на сообщение

Кто-нибудь знает, каким образом в ЗП задаётся анимация раненого в xr_wounded и анимация сидения у костра? Как это всё согласовано со state_mgr и почему эти анимации не хотят работать при переносе state_mgr из ЗП в ТЧ?

 

 

 

------

combat_ignore_cond = false

Скорее всего это и есть ошибка. Если вам нужно сделать combat_ignore без условий, ставьте

combat_ignore_cond = always

Если он вам вообще не нужен - уберите эту строку.

Изменено пользователем Полтергейст

Поделиться этим сообщением


Ссылка на сообщение
для каждого непися из сквада нужно писать работу

Да

 

надпись не помогает(

[smart_terrains]

none = true

 

Надпись эта, насколько я знаю, будет работать только в ТЧ, и то не факт, что непись не зарулит в случайный смарт. Вам нужно спавнить непися не отдельно, а в составе squad'а. Описания сквадов в squad_description_имя_уровня.ltx, поле start_position в simulation.ltx отвечает за то, в каком смарте будет создан сквад.)

Поделиться этим сообщением


Ссылка на сообщение
в котором хранится список дверей которые могут открывать НПЦ

Знаю, что хранится это в db.script, таблица level_doors. Откуда заполняется - не знаю, скорее всего в скрипте ph_door.

Поделиться этим сообщением


Ссылка на сообщение
Полтергейст, просил же не писать всякий бред коль не знаешь!

Открой 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

 

Изменено пользователем Полтергейст

Поделиться этим сообщением


Ссылка на сообщение

А чем вообще GroupControlSection = spawn_group отличается от GroupControlSection = spawn_group_zone ? Вроде секция spawn_group совсем не отличается от spawn_group_zone. Или их имена что-то значат для движка?

Поделиться этим сообщением


Ссылка на сообщение
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)

Поделиться этим сообщением


Ссылка на сообщение
Вся фишка в mob_walker, mob_home что в именах путей нужно указывать только концовки, без названия смарта

Это не только в mob_* так делается. Так работают все схемы, использующие пути смартов. Принцип прописывания имён путей можно проследить в скрипте gulag_general.

Поделиться этим сообщением


Ссылка на сообщение

Тупо добавить в 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

Поделиться этим сообщением


Ссылка на сообщение
Вобщем я понял, какие сквады дохнут от выброса на новых локах, а какие нет.

Дохнут те, что онлайн, остальные целые и невредимые. Так?

Поделиться этим сообщением


Ссылка на сообщение
это использовании функции create_squad из скрипта xr_effects

Это просто заглушка, перенаправляющая на функцию sim_board.create_squad. Нужна для того, чтобы можно было вызывать из логики.

Поделиться этим сообщением


Ссылка на сообщение

У меня в ТЧ такое было после правки скриптов. Бывает при движковых ошибках при работе с пакетами, могут быть и другие причины.

 

Проблема может быть в этой строке:

dbg:squad_%s_enter_smart_%s._quan_=_%s

скорее всего там nil, потому что %s не заменияется тем, чем надо.

Поделиться этим сообщением


Ссылка на сообщение
ну так в чем ошибка?

Если в логах %s не заменяется на строку, значит либо что-то не так с функцией вывода в лог, либо это значение, которое должно заменить %s, равно nil. В аргументах желательно писать tostring, если это число или что-то ещё. Например, у меня есть такой "специальный вылет":

abort("Very big problems with stalker %s", tostring(self.object:id()))

Вот это "Very big problems with stalker %s" выводится в лог, но %s успешно заменяется на id объекта.

Поделиться этим сообщением


Ссылка на сообщение

А ничего, что all.ltx должен быть в той же папке, что и компилятор? Путь-то не указан...

И ещё: советую всегда в начале батников писать @echo off, это избавит от лишней информации в окне командной строки.

 

Не обязательно, нужно всего лишь батник положить в папку с all.spawn, а в нем указать путь до acdc.pl. Куфзук

Изменено пользователем Куфзук

Поделиться этим сообщением


Ссылка на сообщение

А что тут думать, в xr_motivator в hit_callback проверяем "who" по clsid. Если это аномалия - мочим npc.

 

Кстати, как сделать, чтобы аномалии реагировали на пули? Или чтобы пули сами отклонялись от первоначального направления. С ракетой от гранатомёта такой трюк проходит, особенно если сначала потревожить аномалию, а потом стрельнуть сквозь неё. А вот с пулями как?

Поделиться этим сообщением


Ссылка на сообщение
Подскажите пожалуйста, как сделать проверку жив/мертв монстр?

В вашем случае только по story_id:

 

local stobj =alife():story_object(story_id_монстра)
if stobj then
   if stobj:alive() then
      --' Действия, если монстр жив
   else
      --' ... если мёртв
   end
end

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...