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

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


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

Ребят, помогите пожалуйста.

Нужно посадить НПС. В поиске нашёл:

 

 

 

По анимации сидения на стуле.

Делал так:
Скрыть добавление анимации сидения сталкера на стуле
в state_lib добавил это:
sit_stul = { weapon = "unstrapped",
movement = move.stand,
mental = anim.free,
bodystate = move.standing,
animstate = "stand",
animation = "sit_stul"
},
в state_mgr_animation_list добавил это:
sit_stul = { prop = { maxidle = 1,
sumidle = 1,
rnd = 70 },
into = { [0] = "prisluh_0", "prisluh_0_in" },
out = { [0] = "stul_podyem" },
idle = { [0] = "stul" },
rnd = nil },
 
 
Всё это вставил между уже существующими анимациями в названные файлы.
Только проблема в том, что сама анимация кривовато выглядит. Сталкер не просто сидит, а крутит в руках оружие, и это оружие (любое) держит неправильно. Если не присматриваться, и оружие покороче прилепить, то терпимо.
Кстати, чтобы его посадить на стул, скамейку и т.д. не нужно walk на самом предмете сидения, так сказать  smile.gif , 
задавать. Достаточно рядом со стулом (как бы, если бы он просто стоял перед стулом) снять координаты, ну и look задать соответственно. Я так понимаю, сталкера в позе сидения на стуле можно хоть на воздух "посадить", и должен сидеть, как-будто на стуле

 

 

Т.к. в логике я не шарю, написал чёт тип этого:

 

 

[logic]
active = walker
on_death = death

[walker]
path_walk = band_pahan_walk
path_look = band_pahan_look
anim = sit_stul
meet = meet

[meet]
use = true
use_wpn = false
meet_talk_enabled = true

 

 

Ребят как сделать, чтобы НПС сидел в точке band_pahan_walk с анимкой anim = sit_stul? А то чёт ничё не выходит.

В жизни много плохих моментов. Пытайся избавляться от них !

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

@PTB, в файле way_локация.ltx распакованного all.spawn пропиши анимацию в точку look : 

p0:name = name00|a=sit_stul

и синхронизируй её флагом с точкой walk :

p0:flags = 0x1
  • Спасибо 1
Ссылка на комментарий

Помогите пожалуйста, как удалить реплики Сидоровича в начале игры? (я пробовал, вылетало с ошибкой:

 

 

Expression    : fatal error

Function      : CScriptEngine::lua_error
File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ...alker shadow of chernobyl\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)

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

Кто знает, как сделать чтобы сталкеры в деревне новичков нармально разговаривали? А то они базарить нехотят.

Заранее спасибо!

В жизни много плохих моментов. Пытайся избавляться от них !

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

@Kober(BRUC), Ну в самом начале игры сталкеры говорят: 
- "Это ж каким надо идиотом быть, чтобы с пассажиром из "грузовика смерти" трепаться! Ты докажи сперва, что с тобой дело иметь можно."

Изменено пользователем BFG
Добавлено BFG,

Предупреждение !

Не следует вставлять прямую речь в тэг "code". Достаточно выделить кавычками.

В жизни много плохих моментов. Пытайся избавляться от них !

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

Здрасьте, возникла такая проблема при создании скриптов, вообщем, сделал 3 скрипта, 2 из них не работают, а именно - скрипт на проверку предмета в инвентаре ГГ, и скрипт на отдачу предмета НПС. вот сами скриптЫ.

 

function have_case_sold(first_speaker, second_speaker)

  return first_speaker:object("case_to_sold") ~= nil
end

function case_sold_out(first_speaker, second_speaker)
dialogs.relocate_item_section(second_speaker, "case_to_sold", "out")
end

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

@Jizzy, оба работают, если правильно вызвать. скорее всего собеседников перепутал

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

@Jizzy, когда не знаешь, кто из собеседников, передаваемвх в функцию, актер, а кто нпс, делай так:

function case_sold_out(first_speaker, second_speaker)
  local npc = (first_speaker:id()==0 and second_speaker) or first_speaker
  dialogs.relocate_item_section(npc, "case_to_sold", "out")
end
А в первой функции - ты же проверяешь наличие предмета у актера, так и используй ссылку на объект актера из db.script:

function have_case_sold(first_speaker, second_speaker)
  return db.actor:object("case_to_sold") ~= nil
end
  • Спасибо 1
  • Полезно 2

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий
я хоть и не работаю на ТЧ, но респавнер я бы сделал немного по другому.

Я, сделав по твоему, почему-то словил вылет.

 

FATAL ERROR

 

[error]Expression : fatal error

[error]Function : CScriptEngine::lua_error

[error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp

[error]Line : 73

[error]Description :

[error]Arguments : LUA error: ...l.k.e.r\gamedata\scripts\uzi_monsters_respawn.script:9131: attempt to call global 'spawn_ids_object' (a nil value)

 

stack trace:

 

 

 

ругань идет на строчку в скрипте:

 

spawn_ids_object("zaton_poltergeist_09")

 

Сама функция записана ниже в файле скрипта, если что.

 

upd: все заработало, не туда вставил функцию респавна. Спасибо за совет.

Изменено пользователем AndrewMor

Сталкер - наше всё!

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

Всем ку , дамы и господа , товарищи . Вообщем появилась проблемка крупная , а именно перенести мод с 1.0004 на 1.0006. Скачал я репак от s.l мол AMK 1.4.1 и AA3 . Вот хочу использовать для своего мода , как основу. Какие файлы надо менять ? Что писать ? Подскажите ! Очень нужна ваша помощь .

Dukas / Level Designer / Хочу стать про аниматором. Мои работы

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

Вопрос такой:

- а в чём принципиальная разница между:

<infoportion_set_complete>zadanie_sdelano</infoportion_set_complete>
и
<infoportion_complete>zadanie_sdelano</infoportion_complete>

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

Спасибо.

"Кругом зомби.....у меня кончаются патроны...."

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

но почему-то в 1-ом случае пункт задания не закрывается, а во 2-ом случае пункт задания закрылся.

Потому что в infoportion_set_complete указываются поршни, которые выдаются при закрытии, а в infoportion_complete - поршни, которые закрывают.

То есть для случая:

<infoportion_set_complete>realno_zadanie_sdelano</infoportion_set_complete>
<infoportion_complete>zadanie_sdelano</infoportion_complete>
Выдача zadanie_sdelano - закроет пункт задания и при этом выдастся поршень realno_zadanie_sdelano.
  • Спасибо 1
Ссылка на комментарий

@Kober(BRUC), а поподробнее можно? Что-то не припомню я таких вещей... Есть только регистрация класса, ну и всё вроде...

Хотя могу ошибаться.

Ждем мнения "папок"

Не соответствует правилам.

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

@CRAZY_STALKER666, я читал вот этот пост и там рассказывается как создать новый класс(очевидно ведь). Я и подумал что в оригинале тоже есть методы которые описаны там. И вот я решил узнать про методы оригинальных классов. 

 

Возможно я что-то не так понял...

Изменено пользователем Kober(BRUC)
Ссылка на комментарий

@Kober(BRUC), II_FOOD это идентификатор движкового класса, одного из "под-классов" класса game_object. Таким образом, ни в каком скрипте они не написаны, т.к. класс движковый - все его методы находятся в движке. И регистрация там же, его даже в class_registrator.script нету.

Описание базового класса game_object и его методов находится тут

Или более подробно: раз, два, три, четыре, пять.

Часть этих методов применима к предметам, имеющим в конфиге идентификатор класса II_FOOD, но не все - так что стоит внимательно следить за применимостью.

 

 

Более странного и вообще говоря уродливого объектно-ориентированного дизайна я ещё не видел.

Не могу не согласиться :)

 

зы. Если вопрос был связан с попыткой "посмотреть как устроен класс и его методы" или "наследовать свой класс от II_FOOD" - то неудачно выбран пример. В движке оно не на Луа-языке понятное дело, да и наследовать от game_object скриптовые классы нельзя. Вроде бы наиболее распространенное применение скриптовых классов в сталкере, это всяческие биндеры. Посмотреть на них можно в скриптах bind_что-нибудь.script

Изменено пользователем Zander_driver
  • Спасибо 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

Друзья, как восстановить кнопку отключения (а на самом деле просто скрытия интерфейса) КПК, как в билдах? Понимаю, что глупый вопрос, но ответа здесь не нашел, а у самого по какой-то причине не получается.

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

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

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

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

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

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

Войти

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

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

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