Skip to content
Charsi82 edited this page Nov 3, 2015 · 11 revisions

Торговля

  • ограничение на торговлю по кондиции(ЗП)
  • 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()

Clone this wiki locally