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

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


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

Тогда как сделать, что бы НПС не смотрел на актора, а куда ему указано...без зацикливания ремарка. victim не подходит, у меня он должен в точку смотреть.

Ссылка на комментарий

Struck, если тебя не устраивает существующая схема то... или юзаешь другую (подходящуюю) или засучиваешь рукава и пишешь свою иль дорабатываешь под себя имеющуюся.

Схема "meet" разработчиками задумана как встреча двух сталкеров и смотреть "не на собеседника" им как то в голову не пришло. Поэтому в схеме жестко задано: look_object = victim. Не подходит - меняй...

Ссылка на комментарий

Struck, конкретно в точку (т.е. три координаты на уровне) не получится. Указывать куда смотреть НПС при секции meet можно только посредством параметра victim который поддерживает только три значения (цитата с wiki):

victim/victim_wpn = <number>|<параметр> - задает объект, на который должен будет смотреть персонаж, в зависимости от расстояния равное number.

Для ситуации, когда актор безоружен и вооружён соответственно. Возможны следующие значения:

actor - смотреть на игрока;

story_id - смотреть на персонажа со указанным story_id;

nil - никуда.

 

P.S. Мог бы и прочитать чуть более двадцати строк.

Ссылка на комментарий

Artos, ясно, спасибо, тогда остается только ремарк.

 

ColR_iT, Emoticon-Facepalm.gif ну я в общем то прежде чем писать, читаю и пробую, я вроде не спрашивал как такое в [meet] сделать, ибо там даже в самой схеме берется id.

Ссылка на комментарий
Buusty, чтобы вертушка нормально взлетала и садилась - нужно управлять скоростью....

Artos, да, все верно. Спасибо большое! Уже второй раз выручаешь дельным советом. Прописал координаты взлета (первую точку) точно такие же, как и точку приземления, но высоту поднял на "6", и добавил доп. точку вэйпойнта еще на +6 /уж для надежности/ и скорость убрал до "4" (в логике для этой схемы оказывается 15 (!) стояло, вот и срывалась "с буксами" под уровень :lol: ). Теперь все четко, конечно "чуток чиркает пузом" по бетону, но это мелочи, по сравнению с первоначальным вариантом.

P.S. К слову, в данном квесте использовал твой метод установки/удаления метки на рестриктор - простенько и со вкусом! :ok5: Все работает как положено.

Что тут скажешь - "опыт, опыт, опыт..."))).

Ссылка на комментарий

Такой вопрос, по аномалиям. В нет-пакете у них есть такой параметр: artefact_position_offset = 2048. Значение 2048 подсмотрел в чистой игре у большинства аномалий. Понятно, что это что-то связанное с тем, куда спавнить появляющиеся в аномалии артефакты. Но как понимать это число?

Поясню ситуацию, сейчас занимаясь рандомным спавном аномалий на уровне (по рандомному левел-вертексу) часто сталкиваюсь с тем что артефакты лежат кучками по 2-5 штук почти в одной точке, причем в одной кучке артефакты разных видов, относящиеся к разным аномалиям. Самой аномалии в этой точке нет никакой. Не могу сказать что меня устраивает такое их поведение.

Ссылка на комментарий

Вопрос по поведению гулага неписей на Арене, противостоящих нашему ГГ.

Когда ГГ появляется на Арене, то успевает практически пробежать 90 % пути и пальнуть по неписю (-ям), которые ещё только собираются в бой.

В каком файле и какой параметр ( видимо задержка ??? ) надо подправить, чтобы соперники начали расхождение одновременно с ГГ ?

Спасибо.

Изменено пользователем BFG
Ссылка на комментарий

Вопрос по использованию объекта:

Хотел сделать объект используемым

 

[af_dummy_bezic]:identity_immunities

GroupControlSection = spawn_group

discovery_dependency =

$spawn = "artifacts\dummy bezic"

;$prefetch = 32

class = II_ATTCH

cform = skeleton

visual = physics\anomaly\artefact_bezi.ogf

radius = 1

;script_binding = stalker.object_init

quest_item = none

 

description = enc_zone_artifact_af-dummy-bezi

 

inv_name = af-dummy-bezi

inv_name_short =

inv_weight = 0

inv_grid_width = 1

inv_grid_height = 1

inv_grid_x = 4

inv_grid_y = 41

cost = 0

 

eat_health = 0

eat_satiety = 0

eat_power = 0

eat_radiation = 0

wounds_heal_perc = 0

eat_portions_num = 1

animation_slot = 4

hud = wpn_vodka_hud

 

 

в bind_stalker.script

После self.object:set_callback(callback.take_item_from_box, nil)

Написал self.object:set_callback(callback.use_object, nil)

 

И после строки self.object:set_callback(callback.take_item_from_box, self.take_item_from_box, self)

Добавил self.object:set_callback(callback.use_object, self.use_obj, self)

 

В функции function actor_binder:on_item_drop (obj)

 

Дополнил

function actor_binder:use_obj(obj)

art_use.usaem_art(obj)

end

 

В файле art_use

 

function usaem_art(obj)

if obj ~= nil then

if obj:section() == "af_dummy_bezic" then

guider.use_artefact()

end

end

end

 

В файле guider

function use_artefact()

start_jump_to(76.2594451904297,10.2330474853516,47.5550727844238,1063225,4013,0,0,0,"peshera")

end

 

Дальше описывать не буду. Проблема заключается в том, что предмет не используется

Ссылка на комментарий

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

И почему бы тебе не посмотреть как правильно нужно сделать в многочисленных модах, а не пытаться копипастить с ошибками?

Твоя ошибка: создавая ссылку на коллбэк в классе биндера ( self.object:set_callback(callback.use_object, self.use_obj, self) ) ты его (сам метод) НЕ создаешь, а засунул внутрь имеющегося on_item_drop ... Почитай мануалы по Lua и прекрати писать скрипты методом тыка.

 

BFG, нет никаких параметров, отвечающих за задержку перед началом боя, это особенности функционирования AI-схем.

Что собственно происходит перед началом каждого боя? Спавнятся нужные монстры/неписи в нужном месте и им активируется схема 'camper' и ... они тупо (стОя на месте!) выискивают врага-цель. Пока они не увидят (не услышат) врага (актора) - они ничего не предпринимают, т.к. схема ничего иного не предусматривает.

Т.о. если только дорабатывать новой схемой, типа "поиск врага в пределах зоны", может заставить начать бой вместе в актором.

 

Zander_driver, если говорить строго (а это в данном случае важно), в нет пакете нет никаких имен параметров, а те, которые получены после чтения нет-пакета - по сути повторяют имена из распаковки all.spawn'а, а еще точнее - соответствующим настройкам / параметрам из SDK.

Подсмотренное тобою значение 2048 - говорит только об одном: об ошибочном задании/чтении/трактовке этого парамета, т.к., как правило, значение (индекс) для каждой аномалии свое... А то, что у тебя у всех одинаково - ну так и спавнишь свои "рандомные" по одному и тому же шаблону.

Суть этого параметра - это индекс места спавна артефакта, который (индекс) описан в section2.bin, и как правило, у каждой аномалии свой.

Возьми последние версии uACDC и распакуй с ключиком -af, да и посмотреть что-к-чему в SDK можно.

Изменено пользователем Artos
Ссылка на комментарий

1.Где находится логика Борова?(портянки нашел только в gulag_dark_valley.script)

 

2.Трудно-ли добавить 'свое' задание в task manager?(конкретно надо добавить "принести несколько итемов"). Есть, как вариант написать аналог find_item, только поменять проверку наличия итемов. И как для каждого НПС сделать свою строку диалога "Мне нужна работа. Есть что на примете?"?

  • Нравится 1
  • Не нравится 1
Ссылка на комментарий

Struck, ты вновь с вопросами в стиле "аля для СП"... почему бы тебе там же их и не задавать? :nono:

 

1. Раз нашел "портянку", для чего переспрашивать и устраивать в топике "Бюро находок"? Нашел - изучай, в исходной игре более логики для Борова нет.

2. "Трудно иль нет" - зависит от навыков чтения и работы со скриптами и желания самому понять и сделать. Для тех, кто считает себя "нубом" в скриптах, лентяям и торопыжкам - трудно, для остальных...

Квестов на нахождение нескольких предметов понаписано в модах уже на десяток туторов... С добавлением через task manager тоже не мало. Так что для многих это не трудно.

Однако, такая возможность сильно зависит от того, что за "итемы" ты собрался добавлять в квесты. Например, пару бутылок и закуску - тебе врядли удастся добавить, т.к. прежде всего придется научить task manager узнавать что такие итемы имеются в игре.

2.б. Для квестовых неписей диалоги на "наличие работы" добавить не сложно, примеров предостаточно, однако с похотелкою "для каждого НПС" - придется обломиться... Таскменеджер понимает заказчиков для квестов по наличию у них сида (story_id), да еще и прописать их в него придется попотеть... Так что если сможешь каждому неписю, который спавнится в игру, прописать свой сид и зарегистрируешь в таскменеджере - тогда и о диалогах можешь подумать. ну иль ... переписать сам таскменеджер, чтобы он сам узнавал "каждого"... :crazy:

Изменено пользователем Artos
Ссылка на комментарий

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

 

Как правило, игровой движок должен принимать моно файлы с при креплениями "_l" и "_r" и применять их для правого и левого каналов, чтобы получит стероеэффект.

 

Мои тесты показали, неоднократно, что движок не способен сделать это. Он просто не работает.

 

Я попытался изменить функцию "function action_sound2d:get_source_positions()" в "sr_sound2d.script", но ничего не изменилось. Я даже написал новую функцию, чтобы повернуть звуки на разные оси ( X, Y, Z).

 

У меня кончились идеи, может ли кто то помочь? Я хотел бы получить стерео аудио работающую в STALKER.

Ссылка на комментарий

Можно ли прикрутить озвучку артефакту (относящийся к class = Artefact) не используя шейдеры ?

 

Вопрос по использованию объекта:

Хотел сделать объект используемым

Проблема заключается в том, что предмет не используется

А как он должен использоваться, поясните?

Ссылка на комментарий

Такой случай:

В инвентаре у НПЦ есть костюм, который надо испортить на 50%. Я делаю функцией:

 

local obj = npc:object("military_outfit")
obj:set_condition(0.5)
--(Переменная НПЦ определена)

 

Результат: вылетает с такой бякой в логе:

 

LUA error: S.T.A.L.K.E.R.\gamedata\scripts\den.script:188: attempt to index local "obj"(a nil value)

 

Как решить эту проблему?

Ссылка на комментарий

malandrinus костюм есть в инвентаре, все проверял, ошибки в имени костюма нет. С переменной npc тоже все в порядке, я этой переменной этот самый костюм спавнил, теперь надо его испортить.

 

Вылет "говорит", что костюма нет. А есть ли он у НПС и вообще того ли НПС ты находишь - проверять тебе.

ColR_iT

Изменено пользователем ColR_iT
Ссылка на комментарий

proger_Dencheek, твоя ошибка вероятно обусловлена тем, что пытаешься получить доступ к гейм-объекту (онлайновому) не дожидаясь его выхода в онлайн, т.е. не пропустив пару-тройку апдейтов после спавна костюма.

Также, если твой НПС за пределами алайфа (switch_distance) - то не стОит надеяться заполучить онлайн-костюм, если непись в оффлайне.

Ссылка на комментарий

Artos, с дистанцией точно все в порядке, т.к. костюм портится при обыске трупа НПЦ. Т.е. функция не сработает, если НПЦ в оффлайне, я правильно понимаю?

Ссылка на комментарий

proger_Dencheek,ты сам занимаешься погадалками и нам предлагаешь...

Метод obj = npc:object("military_outfit") работает только для онлайнового объекта (npc), возвращая затребованный предмет. Т.о. в твоем случаке, если Lua не ругается на 'npc' - следовательно этот объект доступен. А вот есть ли у него заспавненный костюм - это как раз и НЕОЧЕВИДНО(!), хотя ты и сам спавнил и даже при обыске видишь этот костюм.

Написал же: "не дожидаясь его выхода в онлайн, т.е. не пропустив пару-тройку апдейтов после спавна костюма". Т.е. после спавна костюм появится у твоего НПС в инвентаре ТОЛЬКО спустя некоторое время (2-4 цикла апдейта актора).

Вот тут: #4407 - приведена пара строчек, при помощи которых можно "запортить" заспавненный костюм, тебе только актора на непяся поменять нужно.

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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