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

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


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

23 минуты назад, Паладин сказал:

Здравствуйте. Как научить нпс стрелять из винтореза как из автомата?

скорее всего, из-за параметра  Винтаря  ef_main_weapon_type   = 3, этот параметр показывает неписю как обращаться с оружием, ноль или нет параметр как с пистолетом, 1- дробовик, 2 -автомат, пп-шки, 3 - винтовки, потому и стреляет одиночными типа винтовка полу-автоматическая, поставь 2 как у ВАЛа , можешь ещё поиграться со значениями  ef_weapon_type, и посмотреть что будет)

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

@Sleepless возможно подойдут скрипты из 3.8.2, некоторые из них не правились и на 3.9 работают

 

@Паладин попробуйте в class = WP_VAL прописать (класс оружия от вала) и f_mode/fire_modes = поменять местами 1 и -1

 

 

Изменено пользователем Modz
  • Полезно 1
Ссылка на комментарий

У меня два вопроса:

Как сделать предмет юзабельным?

И как сделать что бы его можно было использовать бесконечно (то есть что бы не пропадал из инвентаря)?

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

@pz_3 заменил в конфигах гитары и гармошки:

class                    = II_MEDKI  (было II_ATTCH)

 

Вылет при заходе в игру.

Скрытый текст

Expression    : fatal error
Function      : CInifile::r_string
File          : E:\stalker\sources\trunk\xrCore\Xr_ini.cpp
Line          : 352
Description   : <no expression>
Arguments     : Can't find variable eat_health in [guitar_a]

 

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

@Stalk2003, набор необходимых (обязательных) параметров для предмета определяются его классом (в данном случае  II_ATTCH -> II_MEDKI). По аналогии с оригинальными предметами данного класса - с нулевым значением.

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

@Купер а за что отвечают эти строки:

 

attach_angle_offset        = 0.000000, -1.204452, -1.262921
attach_position_offset    = 0.081856, -0.035081, 0.011694
attach_bone_name        = bip01_l_hand
auto_attach                = false

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

@Stalk2003 , как предмет будет атачиться (присоединяться - геометрически: угол, позиция, "кость" для присоединения и т.п.) к модели NPC при его использовании (сталкер ест колбасу по схеме логики - например).

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

@Купер на классе антирада не будут работать?

Если нет то надо делать одну гитару для актора а ориг оставить для НПС

Может быть два предмета с одинаковыми?

 

inv_name               
inv_name_short           

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

@Stalk2003 , ну почему сразу не будет? Там только одна хитрость есть: тынц. В качестве минимума. Т.е., чтобы NPC могли использовать предмет (визуально), его необходимо добавить в соответствующую секцию.


Может.

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

Проверьте пожалуйста правильно ли составлена функция

Скрытый текст

function actor_binder:use_object(obj)
               if obj~=nil then
               my_callbacks.on_use_item(obj)
               items_sounds.use_snd(obj)
               end
end

 

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

Серьёзно? А сам?

Прастити за оффтоп... Но обычно в игре сначала проверяют.

Скрытый текст

Задай себе вопрос - оно работает?

Оно работает, как планировалось?

Оно делалось по аналогии с чем то? 

Смею предположить, что не наугад. Значит, какое то базовое понимание имеется. Так почему бы не проверить, что получилось, а потом уже сюда? 

И главное. Всегда пытайся сначала сам.

 

Изменено пользователем mole venomous
  • Согласен 2

Здесь могла быть ваша реклама.

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

@mole venomous просто я несколько раз конкретно ломал игру, этой функцией (в скриптах не шарю). Практически наугад и делалось а так работает.

 

 

@pz_3 сделал колбеки, все работает. Но использую гитару потом гармошку и вес уменьшается на 0.1, потом снова гитару этот 0.1 веса возвращается обратно. С чем это может быть связано?

Ссылка на комментарий
1 час назад, Stalk2003 сказал:

               if obj~=nil then

В принципе не нужно, если мы какой то объект скушали(а колбек мы ведь выводим именно на поедание предмета) - он явно существует, и делать проверку а был ли мальчик - странная затея.

 

1 час назад, Stalk2003 сказал:

function actor_binder:use_object(obj)
               items_sounds.use_snd(obj)
end

Такого будет достаточно. Сам вызов колбека же - обычно цепляется в функцию function actor_binder:reinit() в том же бинд_сталкере, например классический вариант выглядит так:  

Скрытый текст

function actor_binder:reinit()
Бла бла бла куча оригинального и не очень кода
К нему докидывается что нибудь типа
self.object:set_callback(callback.use_object, self.on_use_object, self)
И ниже уже делаем вызов

function actor_binder:on_use_object(obj)

end


 

26 минут назад, Stalk2003 сказал:

использую гитару потом гармошку

Откровенно говоря - я не уверен, что чистый ТЧ на лету(не заркывая инвентори) нормально и оперативно отрабатывает изменения веса при спавне новых вещей в карман колбеком.
т.е. для начала - я бы покопал в эту сторону, не вернется ли "пропавший" вес после закрыть-открыть инвентарь.
И опять таки, построение колбека у тебя странное, я такие конструкции не пользовал, чтобы уверенно что то заявлять. Пример, которым обычно пользуюсь - выше я уже привел.

Изменено пользователем pz_3
  • Нравится 1

Pz_3.gif

Ссылка на комментарий
24 минуты назад, Stalk2003 сказал:

этой функцией

Функции мы то и не видели. Видели проверку и ссылку на файл с  функцией и аргументом в виде используемого obj...

  • Согласен 1

Здесь могла быть ваша реклама.

Ссылка на комментарий
30 минут назад, Stalk2003 сказал:

этой функцией

Какой "этой" ? вот этой?

У тебя там просто вызов другой функции. Синтаксически оно со странностями, но допустимо. Если у тебя что-то кого-то ломало, то оно не в этих строках.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Ссылка на комментарий
1 минуту назад, Zander_driver сказал:

оно не в этих строках

Ну, справедливости ради - я готов поверить, что новичку покажется более сложным сделать колбек в биндсталкере, чем уже из него сделать вывод звука и спавн съеденного.
Тем более, что вывод звуков а ля:
 

Скрытый текст

local tSound ={
medkit       = "interface\\inv_medkit",
medkit_scientic        = "interface\\inv_medkit",
medkit_army                = "interface\\inv_medkit",
medkit_using        = "interface\\inv_medkit",
kolbasa      = "interface\\inv_food",
vodka        = "interface\\inv_vodka",
energy_drink = "interface\\inv_softdrink",
bandage      = "interface\\inv_bandage",
antirad      = "interface\\inv_pills",
bread         = "interface\\inv_food",
conserva     = "interface\\inv_food_conserva"
}
 
function use_snd(obj)
   if obj and tSound[obj:section()]  then
      local snd = xr_sound.get_safe_sound_object(tSound[obj:section()])
      if snd then
      snd:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 2.0)
      end
   end
end   

Вполне себе гуглится\подсматривается в других модах.
Да вобщем то и по колбекам, наверняка есть уроки. Эх. Вот почему то мне комфортнее самому что то пытаться нагуглить, чем просто пойти и спросить на АМК. Болезнь наверное?
 

Pz_3.gif

Ссылка на комментарий
1 минуту назад, pz_3 сказал:

Вполне себе гуглится\подсматривается в других модах.

Справедливости ради, сейчас вообще все что угодно, гуглится и подсматривается на заведомо рабочем примере. На любом языке, на любых платформах, на базе любых модификаций любых игр.

Затруднения возможны только на какой-то редкой экзотике, к коей сталкер уж точно не относится.

А ну да, еще затруднения возможны, когда человек не знает/не понимает, что он делает и как это будет работать. Затруднения возможны, когда к коду относятся как к непонятной магии.

В таких случаях - имхо - лучше бы сначала базовые основы подтянуть.

И вот когда задают вопрос "а правильно ли составлена функция..?" в отношении кода с одной проверкой и парой вызовов внешних функций. То у меня крепнет убеждение, что автор не понимает, что он показывает, и не знает, что он делает. Тут лучше теорию по-изучать, программирование вообще, потом уже Луа в частности...

  • Согласен 3

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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 пользователей

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