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

Скриптование


Svoboда

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

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

Эксперимент-доказательство.

А если переключиться на подствольник, сохранить игру и загрузить?

 

Скорей всего можно задать, через клиент_дату в секретной(или как ее принято называть) части нет-пакета.

 

Получается, UPDATE-пакет можно переписывать, но только для некоторых объектов.

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

Поделиться этим сообщением


Ссылка на сообщение
11 минут назад, Norman Eisenherz сказал:

проблема возникает на следующей стадии – при переносе данных из временного пакета в новый объект.

То есть, если после этого перенести данные из нового объекта в еще один нет-пакет, то там уже кривые данные будут?

Поделиться этим сообщением


Ссылка на сообщение

@Norman Eisenherz, попробуй через абстрактную часть нет-пакета. Смотри в доке у Артоса про net_abstract.

Тогда станет доступно свойство co_props.grenade_mode.

 

Поделиться этим сообщением


Ссылка на сообщение

@phalcor, config/gameplay/info_l01escape.xml

Цитата

    <info_portion id="escape_lager_killers_die">
        <disable>escape_lager_spawn_killers</disable>
    </info_portion>

Инфопоршень escape_lager_killers_die убирает escape_lager_spawn_killers и наемники уходят в оффлайн из-за условия в cекции spawner в all.spawn.

Похоже надо удалить disable из выше процитированного кода.

Или в секции spawner написать как-то так

cond = {+escape_lager_spawn_killers}, {+escape_lager_killers_die}
Изменено пользователем abramcumner
  • Согласен 2
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение
5 минут назад, Norman Eisenherz сказал:

Arguments : LUA error: ...\common\stalker clear sky\gamedata\scripts\_g.script:975: bad argument #2 to 'format' (string expected, got nil)

Это специальный вылет же. 975 строка - функция abort в ЧН. Что выше в логе?

Поделиться этим сообщением


Ссылка на сообщение

 

@Norman Eisenherz, первое правило велосипедиста: педалишь свой велосипед - сверяй с проверенным.

По ошибке:

1. обрати внимание на пост @WinCap,в ЧН/ЗП конструктор net_packet не иницилизирует позиции чтения/записи. Надо делать w_seek

2. Я бы все-таки проверял класс объекта при разборе нет-пакета. cse_alife_weapon по-моему только нож использует.

Ну и да, библиотека Artos`а учитывает все это и еще кучу другого.

 

3 часа назад, Norman Eisenherz сказал:

Опять же, базовые методы, вокруг которых не требуется строить 20 дополнительных проверок – не костыли.

Ну как не костыли. Не работают же эти базовые методы :)

Поделиться этим сообщением


Ссылка на сообщение
9 часов назад, _Sk8_AsTeR_ сказал:

if snd_theme:play(npc_id) then -- ОТМЕТКА!!! ТУТ ЗАТЫК. Это условие не проходится, нпс не проигрывает звук!!!

А snd_theme:play точно что-нибудь возвращает? А то может он ничего не возвращает, ну и if nil then естественно не срабатывает.

  • Нравится 1
  • Согласен 1

Поделиться этим сообщением


Ссылка на сообщение
56 минут назад, Zander_driver сказал:

А зачем и почему это делалось, уже не помню, хоть убейте.

Затем, что принтф не работает в оригиналах :)

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

Поделиться этим сообщением


Ссылка на сообщение
2 часа назад, Norman Eisenherz сказал:

Откуда берутся эти дробные части и как с этим бороться?

Прочитать про числа с плавающей запятой. Не все рациональные числа могут быть представлены в этом формате. Например 0.1 нельзя.

"Борьба" заключается в выводе чисел с нужным числом знаков(s = string.format("%.1f", x) - преобразует x в строку с округлением до одного знака).

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

Поделиться этим сообщением


Ссылка на сообщение
11 часов назад, Norman Eisenherz сказал:

Вместо суммирования таблица очищается на каждом шаге при проверке наличия заданного ключа.

А шагов не два случайно? :)

 

11 часов назад, Norman Eisenherz сказал:

Вложенная таблица {0, 0} не успевает записаться в память до следующей проверки?

Ошибка всегда в программе.

 

В первый раз вместо того, чтобы прибавить p, ты пишешь нолики. Убери else.

 

Ну и вариант с отдельной инициализаций count и отдельным заполнением в сто раз лучше. И ошибок в нем меньше.

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

Поделиться этим сообщением


Ссылка на сообщение
2 часа назад, Norman Eisenherz сказал:

проверка if not снова дает nil и значение перезаписывается парой нулей.

Нет, не  дает и не перезаписывается.

Вот результат выполнения твоего кода

local st={a=1}
local arts ={"af_a", "af_b", "af_c"}

i=1 stat=a count[stat]=nil
i=2 stat=a count[stat][k]=0
i=3 stat=a count[stat][k]=1
count={a = {1 = 2,2 = 0}}

 

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

Поделиться этим сообщением


Ссылка на сообщение
3 часа назад, Norman Eisenherz сказал:

Дополнительный вопрос: почему последовательно прочитанные значения diffSec при аргументах "текущее время / время 0" получаются одинаковыми при разнице до получаса игрового времени?

https://drive.google.com/file/d/1z5AiT9F6ddl5fPDlOXjV9N8y10QS2d7I

Точность флоата - 7 десятичных разрядов. У тебя на скрине какой-то смысл имеют старшие 7 разрядов у чисел, в остальных мусор.

Интересное наблюдение - разница между числами у тебя на скрине 4096 :) Вот с такой точностю с такими большими значениями работает флоат.

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

Поделиться этим сообщением


Ссылка на сообщение
1 час назад, Norman Eisenherz сказал:

Еще вопрос: для чего полный набор значений читается показанным ниже способом, если метод ct:get() дает все те же значения и без ввода аргументов?

Возможно это наследие старых версий luabind. Когда-то можно было писать только с полным набором значений. Потом стало можно писать и пустой get, но скрипты править уже не стали.

6 часов назад, Norman Eisenherz сказал:

но после вычислений не получается и половины требуемого значения. Где ошибка?

А это тебя еще и функция setHMS подводит :)

в движке у нее аргументы типа int - так что да - больше 69 лет таким макаром не получишь.

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

Поделиться этим сообщением


Ссылка на сообщение
43 минуты назад, Kirgudu сказал:

Что-то я даже затрудняюсь сказать, что будет с глобальной кеширующей актора переменной db.actor, если её использовать в качестве выходного параметра. Обнулится со всеми вытекающими? Или будет создана локальная одноимённая переменная, не влияющая на глобальную, поскольку существует только внутри этой функции?

У меня скрипт с таким объявление функции вообще не распарсился lua в ЗП.

  • Полезно 2

Поделиться этим сообщением


Ссылка на сообщение
1 час назад, Black_Raven_03 сказал:

а какая связь между ЗП и ТЧ-ориентированным ОГСР-движком?! я же специально указал год сборки движка - 2020! ЛуаДжиты же разные!

Такое не должно и на ТЧ/ОГСР парситься. Что было под рукой, на том и проверил.

  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

@Labadal попробуй запустить на OGSR-Engine. Так у тебя должен появиться нормальный лог. Без него так и будешь дальше тыкаться как слепой котенок.

  • Согласен 1

Поделиться этим сообщением


Ссылка на сообщение
12 часов назад, Labadal сказал:

Партикл остаётся, т.е рестриктор никуда не делся. Я даже логику пробовал менять, изменял активную секцию, и тд. Партикл не уходит. В общем, подскажите, пожалуйста. 

Попробуй закомментировать строки:

local se_obj = alife():object("rest_name_vagon")
--if se_obj then
alife():release(se_obj, true)
--end

 

  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

@Labadal похоже, что ГСЦ такого не ожидала. И рестриктор удаляется, а партиклы не отключаются.

 

Попробуй сначала перевести рестриктор в другую секцию/nil и только потом удалять.

 

Или можно в bind_restrictor.script в функции function restrictor_binder:net_destroy()

if st.active_scheme then
  xr_logic.issue_event(zone, st[st.active_scheme], "deactivate") -- добавить отправку события отключения схемы перед удалением
  xr_logic.issue_event(zone, st[st.active_scheme], "net_destroy")
end

 

  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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