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

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


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

Цитата

function sleep_mod_func2()
if level.get_time_hours() >= 23 and level.get_time_hours() < 4 then
sleep_manager.main (10)
else
sleep_manager.main (2)
end
level.enable_input()
amk.g_start_timer("sleep2_timer",0,0,10)
end

 

Функция всегда возвращает второе значение, вне зависимости от текущего игрового времени. Вызывается просто - через рестриктор или диалог. Что тут не так?

Всем привет народ , тема такая

есть фриплей мод , на его основе собираюсь сделать свой

В бинд_сталкере у меня подключается файл и из него вызывается функция спавна монстров , и моего нпс

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

 

 

@Egor4ikModMaker, ну к примеру так:

   ----------------------------Спавн--------------------------------------------------------------------------------
    if xr_logic.pstor_retrieve(db.actor, "first_run", 0)==0 then
            my_spawn.spawn_my()
       xr_logic.pstor_store(db.actor, "first_run", 1)
    end
----------------------------Спавн--------------------------------------------------------------------------------

 

46 минут назад, alex5773 сказал:

ну к примеру так:

@alex5773 , Ловлю вылет:

Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ....r - Èñòèííûé ïóòü\gamedata\scripts\rx_addons.script:149: attempt to index field 'actor' (a nil value)

@Egor4ikModMakerсправочник вылетов

У меня лично ничего не вылетает, и в фриплейных(типа FreeplayStart_v1_21), и в оригинальной игре.

Изменено пользователем alex5773
25 минут назад, alex5773 сказал:

справочник вылетов

Там сказано следущее :

 

 


 

Expression    : fatal error Function    : CScriptEngine::lua_error File        : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp Line        : 73 Description    : Arguments    : LUA error: ...\gamedata\scripts\<имя файла>.script:<номер строки>: unfinished capture

 

 

 



Причина:

Единственной причиной данного вылета которую я нашёл, это попытка использовать для функции string.find в качестве шаблона "волшебный символ" открывающуюся круглую скобку, т.е. попытка найти скобку таким образом:

local p = string.find(str, "(")

Лечение:

Для поиска открывающейся круглой скобки используйте параметр plain для данной функции со значением true, он выключает возможность поиска по шаблону и в таком случае производится поиск подстроки как есть:

local p = string.find(str, "(", 1, true)

 

 

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

Изменено пользователем Egor4ikModMaker
50 минут назад, Egor4ikModMaker сказал:

чудным-образом удалось запустить твой скрипт (запихнув его в другу часть бинд_сталка)

 

50 минут назад, Egor4ikModMaker сказал:

баг с перезагрузкой работает по прежнему. (т.е после перезагрузки 2 нпс и при дальнейшем их только больше.)

Ну во-первых, скрипт не мой, а твой) А во-вторых, надо не запихивать лишь бы запихнуть, а именно надо прописать в функцию

function actor_binder:net_spawn(data) после death_manager.init_drop_settings()

И вообще, что у тебя там за фриплей мод, фиг его знает.

И я не знаю что ты там помимо этого ещё химичишь.

И вылет у тебя был именно attempt to index field 'actor' (a nil value)

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

Допустим раньше я спавнил через скрипт-дополнение

 

 

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

сейчас сделаю

upd: да отлично, работает , спасибо!

 

пардон , чушь написал.

слепой прост
 

 

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

Всем привет народ , подскажите как лечить вылет подобного типа?



ТЧ.1.0004

Вылет при обыске трупа (при забирании вещей кнопкой или в ручную)

Expression    : assertion failed
Function      : CSafeFixedRotationState::create
File          : e:\stalker\patch_1_0004\xr_3da\xrgame\phvalidevalues.h
Line          : 81
Description   : dBodyStateValide(b)

11 минут назад, Egor4ikModMaker сказал:

как лечить вылет подобного типа?

Так я же тебе выше давал ссылку на справочник вылетов.
Expression    : assertion failed
Function    : CSafeFixedRotationState::create
File        : e:\stalker\sources\trunk\xr_3da\xrgame\phvalidevalues.h
Line        : 81
Description    : dBodyStateValide(b)

Причина:

Как правило - при попытке зомбировании неписей контролером, но не только. Также может появиться при неправильной настройки костей модели. Ещё может быть битый/криво разобранный нетпакет, даже если собственно визуал нормально прочитался и разобрался.

Лечение:

В случае кривой модели - определить модель и исправить, для этого достаточно обратно перегнать в СДК, настроить все шейпы, и обратно в огф. В случае скриптом - найти и избавиться от ошибки.

В 27.06.2018 в 06:42, Egor4ikModMaker сказал:

Line          : 81
Description   : dBodyStateValide(b)

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

Так что же тебе ещё то надо? 

Только что, alex5773 сказал:

Так что же тебе ещё то надо? 

Понять как это лечить.

В сдк перегонять без вариантов нет. 

 Модели оригинальные. Откуда взялся вылет?

До этого подобного не было. 

  • Не нравится 1
16 минут назад, Egor4ikModMaker сказал:

В сдк перегонять без вариантов

 

18 минут назад, alex5773 сказал:

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

 

18 минут назад, alex5773 сказал:

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

Ну а если это тоже без вариантов. То вариант один остаётся, удалить причину вылета.

Самый лучший вариант:grin2:

Изменено пользователем alex5773
1 час назад, alex5773 сказал:

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

 

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

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

 

Скорее всего наверное нет-пакет барахлит , а как это проверить

или со скриптом?

Существует ли GUI утилита для настройки инвентаря?

 

В частности, нужна для того, чтобы подгонять инвентарь под разные форматы мониторов.

 

Пока представляю это как: Меняю значение в .xml файле инвентаря -> Запускаю игру -> Смотрю что изменилось.

 

Неужели все этим так занимались все 11 лет моддинга?

@aka_sektor, Сделай скриншот в игре, а потом открой его в редакторе и там уже смотри координаты. Если делаешь под широкоформатные, то преобразуй скрин в 1024х768 и потом снимай координаты .

@TIGER_VLAD, не совсем понимаю, как ты это представляешь. Элементы инвентаря не привязаны вроде ко всему экрану, они могут быть привязаны к другим элементам инвентаря.

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

@aka_sektor, Правильно. Так узнай, что к чему привязано и передвигай окна куда тебе надо.

@aka_sektor, у @Charsi есть вот такой калькулятор. https://yadi.sk/d/BhF4gSfz3YdPnu

Я правда никогда им не пользовался, в основном как ты и пишешь "записал-запустил-посмотрел". Но может тебе поможет.

 

Попутно задам и свой вопрос. Поддается ли лечению подобный вылет:

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

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   : <no expression>
[error]Arguments     : LUA error: not enough memory
stack trace:
Scheduler tried to update object sor_bar_visitor_2

 

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

есть вот такой калькулятор

Да, уже дали наводку: https://xray-engine.org/index.php?title=Калькулятор_HUD'ов

 

Однако эт кажется сложным, надо вникать.

 

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

LUA error: not enough memory

Оч. странно вылет похоже частый, да и мне знаком. Но конкретной инфы по нему чет не нашел пока. Будем смотреть.

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

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

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

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

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

Войти

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

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

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