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

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

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

25 минут назад, mole venomous сказал:

inventory и ammo_belt. Копай там

Я их поставил как есть. Что я там копать буду? 

 

Не может быть из-за bind_stalker.script? В нем есть что-то, что связано с работой пояса?

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

@Ворон545, столько, сколько унесёшь при переспавне затормозит твой проц.

7 минут назад, Ворон545 сказал:

bind_stalker

конечно, это же бинд_сталкер.

Оттуда ловится работа с инвентарём и итемами. Сравни оригинальный и модифицированный файлы. 

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

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

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

@AndreySol@mole venomous, вот смотрите, товарищи.

 

Сию конструкцию

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

function on_block()
  cmd("unbind use_medkit")
end


function cmd(scmd, ...)
  local args = {...}
  local cons = get_console()
  if #args > 0 then
    scmd = scmd.."..table.concat(args,")
  end
  cons:execute(scmd)
end

дописываю в конец bind_stalker. Пробовал заменять кавычки на два апострофа, рез-т тот же.

 

В actor_binder:net_spawn(data) пишу сие действо:

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

function actor_binder:net_spawn(data)

 ...

 on_block()

    return true
end

 

Ловлю вылет:

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

FATAL ERROR
 
[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : .\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: ...g\s.t.a.l.k.e.r\gamedata\scripts\bind_stalker.script:87: attempt to call global 'on_block' (a nil value)
 

stack trace:

 

Походу я что-то неправильно понимаю, ткните носиком :)

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

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

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

scmd = scmd.."..table.concat(args,")

Мне кажется, здесь... Вот код

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

function cmd(scmd, ...)
    local args = {...}
    if #args > 0 then
        scmd = scmd .. ' ' .. table.concat(args, ' ')
    end
    get_console():execute(scmd)
end

При копи-пасте ничего не поменялось вчера?

@AndrewMor, да чёрт с ним! Вызывай уже это :

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

local cons=get_console()

cons:execute("unbind use_medkit")

 

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

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

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

@mole venomous, Вот эта конструкция сработала:

 

function actor_binder:net_spawn(data)

 ...

        local cons=get_console()
        cons:execute("unbind use_medkit")
        cons:execute("unbind use_bandage")

    return true
end

 

Все четко работает, при старте НИ, после сев/лоада, перехода на другую локу. Спс.

На будущее, буду знать. Не зря говорят: век живи - век учись.

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

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

@AndrewMor, на самом деле это обращение к консоли гораздо более известное. Но я, как уже неоднократно уточнял на форуме, копаю глубоко и не вижу дальше собственного носа. Забываю о простых вещах :dash2:

25 минут назад, AndrewMor сказал:

Все четко работает

Но ты же понимаешь, что просто кнопка сбрасывается? Зайти в опции и поставить "как было" дело не долгое.

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

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

Ссылка на комментарий
48 минут назад, mole venomous сказал:

что просто кнопка сбрасывается? Зайти в опции и поставить "как было" дело не долгое.

Это нормально для костыльных реализаций всяких похотелок.

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

  • Согласен 1
Ссылка на комментарий
52 минуты назад, mole venomous сказал:

что просто кнопка сбрасывается?

А и пусть. 

Это будет чуть удобней, чем через консоль.

 

А по поясу - беда бедовая.

Не разбираюсь я в скриптах. 

Ну, мож со временем разберусь, методом тыка, кхе-кхе...

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

на самом деле это обращение к консоли гораздо более известное

Если б я про него знал и пользовался (или увидал пример использования), я б и не спрашивал.

 

1 час назад, mole venomous сказал:

Но ты же понимаешь, что просто кнопка сбрасывается? Зайти в опции и поставить "как было" дело не долгое.

Разумеется. Но человек, который мне задал вопрос, от скриптов далек, для себя он бы не прочь сделать скриптом, чтобы постоянно кнопки не сбрасывать. Это решение вполне его потребности подходит.

 

35 минут назад, AndreySol сказал:

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

Это да. Но не все умеют/готовы копаться в движке. Как минимум, надо С++ знать, вроде на нем двигло написано. И опять, мало поправить. Его и еще и собрать надо.

 

ПС. Представь: человек в скриптах не шарит, а ему еще и в движке ковыряться :dash2:

 

@mole venomous, Опять же

 просто прописать

 

        local cons=get_console()
        cons:execute("unbind use_medkit")
        cons:execute("unbind use_bandage")

 

вроде нетрудно. Но надо знать, куда прописать. В какой файл, в какую функцию, в какое место в функции. Для несведущего - темный лес.

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

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

Ссылка на комментарий
4 часа назад, mole venomous сказал:

Зайти в опции и поставить "как было" дело не долгое.

Так надо вырезать из опций возможность настроить эти кнопки.

  • Согласен 1

GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Куча раритетных модов на моем облаке — на память о былом.

JNCR — Coming Soon...

i5-10400F / RAM 16GB / GTX 1660 Super / 1TB HDD+256GB SSDm2 / Win 11 PRO x64 / Samsung Curved 27" x2

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

вырезать из опций

Так это опять движок.

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

Изменено пользователем Zander_driver
  • Согласен 3

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

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

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

Ссылка на комментарий
8 часов назад, AndreySol сказал:

значительно правильнее скриптовых костылей

Решил перевести свою сборку на двигло OGSR с заведомо бОльшим потенциалом. И не исключено, что "благодаря" всем своим "костылям" до сих пор не могу этого сделать. Хуже того, я даже точную причину не знаю, отчего даже в мейн меню не загружает.

8 часов назад, Ворон545 сказал:

Не разбираюсь я в скриптах

Я тоже)) Смотри в бинд_сталкер, у аддона "патроны на поясе" вызов inventory из бинда должен быть в четырёх функциях.  

  • Нравится 1
  • Полезно 1

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

Ссылка на комментарий
9 часов назад, mole venomous сказал:

Решил перевести свою сборку на двигло OGSR ... я даже точную причину не знаю, отчего даже в мейн меню не загружает.

Кхмм, но ведь на двигателе OGSR лог вылета есть практически всегда, и если не правили своими ручками движок, то причина в логе должна быть.

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

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

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

Ссылка на комментарий
14 часов назад, Zander_driver сказал:

Так это опять движок.

Понимаю, согласен. Но если речь идет о костыльных методах (я, так понимаю, суть добиться отключения кнопок через простой анбинд, не ковыряя движок), то только так. :pardon:

GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Куча раритетных модов на моем облаке — на память о былом.

JNCR — Coming Soon...

i5-10400F / RAM 16GB / GTX 1660 Super / 1TB HDD+256GB SSDm2 / Win 11 PRO x64 / Samsung Curved 27" x2

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

причина в логе должна быть

Предварительно запаковав свою дату в архивы, а в распакованном виде оставив все ресурсы от x64 (OGSR_Engine_SHOC_EDITION_x64_2.1.112_Release) запускаю и последовательно получаю два окна с ошибкой. Их дубляж из лога:

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

[error]Expression    : assertion failed
[error]Function      : CScriptStorage::load_buffer
[error]File          : D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\COMMON_AI\script_storage.cpp
[error]Line          : 303
[error]Description   : false

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

[error]Expression    : ExitFromWinMain
[error]Function      : xrDebug::_initialize::<lambda_624a33c9e0d8fd504b41174d2da7eba3>::operator ()
[error]File          : D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\xrCore\xrDebugNew.cpp
[error]Line          : 541
[error]Description   : Unexpected application exit!

Внаглую подменив _g.script на свой, получаю всё тоже. Посмотрев на сей "шедевр", понимаю, что адаптацию не начну даже методом тыка, так как ничего не понимаю.

Да и здесь не стол заказов, поэтому отложил, пока в мозг чего-нибудь не прилетит :WhiteVoid_2: 

К слову, при совмещении чистого ТЧ 1.0006, SMP пака  и этого релиза x64, игра работает.

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

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

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

ОГСР движок более требователен к скриптам то что запускается на обычном движке не всегда идет на ОГСР. Тоже хотел один мод перевести на этот движок погряз в скриптах правил правил потом надоело, но может продолжу. Всякие там одинарные слеши в путях к файлом спокойно идут на обычном движке, в ОГСР подавай обязательно двойные:biggrin:

  • Полезно 1
  • Смешно 1
Ссылка на комментарий

Конечно же она на месте. От того и трудности. Что и где совмещать в первую очередь, совсем не ясно.

Понятно, что главное начать. Что бы хоть вразумительные логи с вылетов получать... Пните меня, что б я не промахнулся. Я думаю с _г надо начать.

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

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

Ссылка на комментарий
9 часов назад, mole venomous сказал:

Их дубляж из лога:

Первый говорит "У вас что-то не так со скриптами".

А чтобы понять, что именно не так, и где конкретно, надо вдумчиво читать лог выше этих строчек. Уж по скриптовым вылетам, OGSR Engine предоставляет исчерпывающую инфу, что, где, почему, даже дамп всех переменных прикладывает. (Что на мой-имхо-взгляд даже лишнее, избыточное - лог в километровую портянку превращается же. Но, понимаю что это как раз и сделано для удобства тех, кто "не силен в скриптах")

А второй лог просто эхо первого, на него вообще смотреть не нужно.

8 часов назад, mole venomous сказал:

Что и где совмещать в первую очередь, совсем не ясно.

В первую очередь стоит начинать с _g.script, при адаптации любого мода на любой не-родной ему движок, начинать стоит оттуда.

И в первейшую очередь (если вы не готовы собственноручно _g.script переписывать) - стоит озадачиться вопросом, а почему бы не поставить _g.script прилагаемый к OGSR-Engine. Из-за него, по крайней мере, вылетов не будет, и можно будет заняться адаптацией всего остального.

9 часов назад, mole venomous сказал:

Внаглую подменив _g.script ... получаю всё тоже.

Неа. Не тоже. Тот лог, который вы первым показали - он естественно тот же и будет - "У вас что-то не так со скриптами". До тех пор, пока со скриптами не будет все ОК - он будет такой же. Но инфа выше него, будет меняться, указывая на разные скрипты и разные причины вылета. Лог существует не для того чтобы в нем читать последние 5 строчек, его надо читать целиком, стараясь понимать всё написанное, и занимаясь поиском инфы в случае непонятного. Особенно это касается OGSR, когда вы занимаетесь адаптацией чего-то под него - читайте лог целиком и полностью, а не только хвостик.

  • Спасибо 1
  • Согласен 1

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

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

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

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

@mole venomous, вышла новая версия движка - OGSR_Engine_SHOC_EDITION_x64_2.1.142 :yes3:

 

Кстати, _g.script удобнее всего совмещать в notepad++ плагином compare с включенной подсветкой синтаксиса ( script ассоциирован с lua).

А проверять скрипты чекером lua от @Charsi (смотреть\скачать  в профиле).

869c1a169a0cb15b0fc0d81ab929456905892a383723c90c9ebb12b98d1fb9f4c063de5d05892a38

Изменено пользователем nasar75
  • Нравится 2
  • Согласен 1

AMD Athlon II X2 250, NVIDIA GTS 450, RAM 8.0 GB, WIN 7/64  правки Золотой Шар

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

×
×
  • Создать...