-
Notifications
You must be signed in to change notification settings - Fork 5
Изменения
Торговля
- ограничение на торговлю по кондиции(ЗП)
- owner:buy_item_condition_factor(float) установка этого ограничения (по умолчанию 0.7)
- пункт "подарить" в режиме торговли
Транспорт
- получение машины, используемой актором в данный момент game_object* actor:get_actor_car()
- посадка в машину actor:attach_vehicle(car)
- высадка из машины actor:detach_vehicle()
- исправлен метод actor:set_actor_position(vector) (с высадкой, если актор в машине)
- хит по физ.оболочке машины при спавне, чтобы не висела в воздухе
- исправлена неработоспособность артефактов в машине
- исправлено инвертирование управления машиной
- управление башней бтр
- при стрельбе из бтр инициатор стрельбы - актор
- поднятие заваленной машины (активируется клавишей переключения режима подствола)
- добавлено использование ПНВ, бинтов и аптечек в машине
- добавлен движковый багажник (открывается клавишей X, когда актор в машине)
UI
- в оконных классах добавлены методы Init(x,y,w,h) и Frect GetWndRect()
- в классе CUIListWnd экспортирован метод GetSelectedItem
- координаты курсора vector2 get_cursor_pos()
- событие открытия окна on_actor_menu_open
- inv_box:open_inventory_box() -- открыть ящик
- перемещение всей пачки предметов при зажатом левом lshift
- get_hud():BringCustomStaticToTop("static_name") ищет указанный статик, если находит переносит его поверх остальных.
- восстановлен показ иконок в окне обыска трупов монстров
- исправление неправильного положения иконки аддонов при апгрейде
- в окно инвентаря добавлена область выкидывания предметов (ЗП)
- добавление имени оружия в контекстное меню иконок аддонов (ЗП)
- переопределение строки использования в контекстном меню через параметр из секции
- восстановлена панель артефактов на худе
- добавлена команда hud_crosshair_build для отключения прицела-крестика
- аддоны на иконке предмета, на который смотрим (1.0007)
- исправлена растяжка иконки предмета, на который смотрим на ш\ф (1.007)
- исправлено последовательное проигрывание музыки в главном меню
- добавлено управление треками в главном меню (стрелочками влево и вправо)
- биндинг фраз в диалогах на кнопки 1..10 (ЗП)
- съедание используемых предметов и одевание аддонов через контекстное меню в режиме торговли, обыска и апгрейда
Callbacks
- движение мыши on_mouse_move
- нажатие клавиши on_key_press
- отпускание клавиши on_key_release
- удержание клавиши on_key_hold
- вращение скроллера on_mouse_wheel
- начало прицеливания on_actor_weapon_zoom_in
- окончание прицеливания on_actor_weapon_zoom_out
- посадка в машину on_attach_vehicle
- высадка из машины on_detach_vehicle
- бросок гранаты on_throw_grenade
- получение вещей инвентарным ящиком on_inv_box_item_take
- потеря вещей инвентарным ящиком on_inv_box_item_drop
Actor
- влияние на пси-здоровье съедаемыми предметами ("eat_psy_health")
- экспортированы свойства satiety и alcohol для актора
- для актора метод active_detector возвращает объект активного детектора(ЗП)
- bool db.actor:is_zoom_aiming_mode() состояние прицеливания (без учета отрисовки прицельной сетки)
- для метода set_actor_direction добавлены аргументы pitch и roll
- bool db.actor:is_actor_outdoors() находимся ли в укрытии
- db.actor:move_to_ruck(iitem) перенос предмета в рюкзак с пояса или из слота
- db.actor:move_to_slot(iitem) перенос предмета в слот
- db.actor:move_to_belt(iitem) перенос предмета на пояс
Прочее
-
добавлен детектор СВАРОГ из Зова Припяти
-
прицел переменной кратности для автоматического оружия
-
рамки прицела включаются\отключаются кнопкой подствольника
-
добавлен класс автоматического дробовика
-
исправлен баг несохранения типа зарядов у дробовиков
-
исправлено потеря типа зарядов в подстволе при переводе оффлайн\онлайн
-
удалена попытка переключения видимости аддонов при загрузке. это делается в net_spawn
-
исправлено обнуление типов зарядов в ГР-6 при переводе оффлайн\онлайн
-
отключен поиск патронов на поясе
-
добавлено отображение слотов ножа, фонарика и бинокля в окне инвентаря
-
пояс расширяется до 16 ячеек (5 в костюме + до 11 независящих от костюма). потребует редизайна текстур инвентаря.
-
исправлена команда "demo_record" (вылет при незагруженом уровне; скрытие главного меню, если оно было открыто)
-
восстановлен параметр запуска "-nointro" для отключения заставок
-
исправлено получение ранга оружия, не прописанного в mp_ranks
-
фикс сброса визуала при получении второго броника в инвентарь
-
подсказка для переносимых физ.объектов с визуалами из секции "ph_capture_visuals" (SHIFT+$ACTION_USE$)
-
автоперепаковка неполных пачек патронов
-
убрана растяжка неба
-
исправлен баг разрядки РГ-6
-
фикс бесконечного звука ауры контроллера
-
проверка состояния фонарика и НПВ методами torch:is_active() и torch:is_nv_active()
-
скриншоты в формате png(jpg доступен с параметром запуска -ss_jpg)
-
замедленное приседание - smooth crouch fix (revolucas)
-
добавлены тени травы (KD)
-
добавлена тень актора (KD)
-
тень от активного предмета в руках актора
-
активация детектора при активном втором слоте приводит к активации болта и детектора(как в ЗП)
-
исправление стоимости неполной пачки патронов и оружия с надетыми аддонами(todo отключить или переделать)
-
фикс рамок бинокля (рисуются рамки для объектов, на которые смотрит, а не которые помнит актор)
-
перенос актора в режиме demo_record клавишей Enter
-
включение физики трупов консольной командой ph_deadbody
-
разблокировка консольных команд fov, hud_fov, hud_draw
-
синхронизация объектов перед сохранением (by Shoker)
-
поэтапное выведение инвентарных объектов в онлайн (ANTIFREEZE by alpet)
-
фиксирование скорости отрисовки кадров да 60fps в главном меню и на паузе (ECO Render by alpet)
-
звуки переключения фонарика
-
сохранение состояния ПНВ
-
включение\отключение худа num+\num- (при виде от 3 лица и в транспорте с зажатым CTRL)
-
исправление метода tranfser_item для бесхозных предметов(1.0007)
-
восстановлена работа функции log
-
обновлен LuaJIT до версии 1.1.8 (Lua до 5.1.5)
-
доп. Lua функции от RVP (xrLuafix)
-
добавлено пространство имен debug
-
пространство имен marshal для сериализации таблиц (https://github.com/richardhundt/lua-marshal)
-
пространство имен lfs для работы с файловой системой (https://keplerproject.github.io/luafilesystem)
-
добавлена функция string.split(str, [separator[, mode[, trim]]])
-
добавлена функция table.serialize для сериализации таблиц (для последующей десериализации через loadstring). Ключами и значениями могут быть числа, строки, таблицы и логические значения.
-
Пример
-
local t = {a=1, "d", ['x"yz'] = true, [{false}] = {55}}
-
local s = table.serialize(t) -- s = '{["a"]=1,[2]="d",["x"yz"]=true,[{[false]=44}]={[1]=55}}'
-
local t1 = loadstring("return "..s)() -- t1 присвоен эквивалент t
-
в string.format добавлена обработка шаблона %b для логических значений
-
итерация по оффлайновым объектам alife():iterate_objects(function(sobj) end)
-
bool level.is_crosshair_shown() показана ли прицельная сетка
-
string obj:get_visual_name() - путь к визуалу
-
ini_file obj:get_visual_ini() - настройки модели
-
добавлена функция установки времени level.change_game_time(u32 day, u32 hours, u32 min)(ЗП)
-
функция рей-трейсинга(KD)
-
local t = level.hud_target() -- структура с объектом, на который смотрим t.O - объект под прицелом t.range - дистанция до цели t.element - номер кости визуала объекта под прицелом(или треугольника статики)
-
отдельно level.hud_target_obj(), level.hud_target_dist(), level.hud_target_element()
-
int dik_to_bind(dik) - перевод id клавиши в id экшена пример: dik_to_bind(DIK_keys.DIK_ENTER)->79 - незабиндена dik_to_bind(DIK_keys.DIK_SPACE)->4 - прыжок(key_bindings.kJUMP)
-
нажата ли клавиша bool key_state(dik)
-
эмуляция нажатия клавиш (пример: симулировать прыжок - level.press_action( DIK_keys.DIK_SPACE ))
-
level.press_action(dik)
-
level.release_action(dik)
-
level.hold_action(dik)
-
vector2 level.point_projection( pos ) - проекция позиции объекта на плоскость экрана
-
number obj:get_total_weight() - суммарный вес инвентаря для ящиков и inventory_owner
-
number iitem:weight() - инвентарный вес предмета
-
flags16 iitem:set_inventory_item_flags() - флаги инв.предмета(квестовый, торгуемый и т.д.)
-
iitem:set_inventory_item_flags(flags16) - установить флаги
Bones
- string obj:get_bone_name(number) - имя кости по её номеру
- number obj:bone_name_to_id(string) - номер кости по её имени
- bool obj:get_bone_visible(string) - включено ли отображение меша кости
- set_bone_visible( string name, bool state, bool recursiv) - установить видимость. Все вертексы должны быть привязаны к этой косточке жестко, при мягкой привязке вылезают баги.
- bool obj:bone_exist(string) - есть ли кость с указанным именем в модели объекта obj
search light
- obj:switch_projector(bool) -- установить состояние
- obj:projector_is_on() -- получить состояние
Патроны
- iitem:get_ammo_box_curr() - количество патронов в пачке
- iitem:set_ammo_box_curr() - установить количество патронов
- iitem:get_ammo_box_size() - размер пачки
Состояние аддонов для weapon_magazined
- bool weapon:get_silencer_status() -- глушитель
- bool weapon:get_gl_status() -- подствольник
- bool weapon:get_scope_status() -- прицел
InventoryOwner
- int db.actor:belt_count() - количество предметов на поясе
- int owner:ruck_count()- количество предметов в рюкзаке
- iitem db.actor:item_on_belt(item_id) - на поясе ли предмет
- iitem owner:item_in_ruck(item_id) - в рюкзаке ли предмет
- bool owner:is_in_slot(iitem) - предмет в слоте
- bool db.actor:is_on_belt(iitem) - предмет на поясе
- bool owner:is_in_ruck(iitem) - предмет в рюкзаке
- owner:buy_item_condition_factor(number) - установить предел кондиции для торговли
- obj:heal_wounds(number percent) - изменить степень кровотечения
Объекты партиклов
- p:set_direction(vector) - положение патрикла
- p:set_orientation(float yaw, float pitch, float roll) - ориентация партикла
- vector p:last_position()