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

Shkiper2012

Пользователи
  • Число публикаций

    47
  • Регистрация

  • Последнее посещение

  • AMKoin

    2,591 [Подарить AMKoin]

Весь контент пользователя Shkiper2012

  1. Ссылка на "Сборка исходников, необходимые программы" не работает, либо пост удалён/перенесён. Если перенесён, то куда?
  2. [ТЧ 1.0007rc1] Приветствую. Думал в теме про C++ задать этот вопрос, но он (имхо) ближе к движку и поэтому здесь. Итак... Начал разбираться в движке, и возник такой нубский вопрос по типах переменных (и не только по ним): Скрытый текст Flags8, Flags16, Flags32 <--- Что это за флаги? Для чего используются? u8, u16, u32 <--- Это 'unsigned _int8', 'unsigned _int16', 'unsigned _int32' или что то другое? s16, s32 <--- Это тип 'string' 16ти и 32х битные или нет? f32, <--- Это тип 'float' 32х-битный? Если да, то чем отличается от стандартного 'float' ? BOOL, TRUE / FALSE <--- Почему типы 'boolean' в верхнем регистре? Есть ли отличие от просто 'bool', 'true', 'false' ? LPSTR <--- Что это за строка, чем отличается, например, от 's16', 'string16', 'char' ? IC, ICF <--- Что это за тип / класс / структура / шаблон...? string16, string32, string64, string128, string256, string1024 <--- Чем эти строки отличаются от других? Цифры означают битность или размер чего-либо? (CParticlesObject*& pParticles) <--- Это ссылка и указатель одновременно? До сих пор, путаю указатели и ссылки, а тут всё в одном флаконе =) Что это за типы? Чем отличаются от стандарта C++? Скрытый текст Так же, буду благодарен за объяснения "авторских" типов из движка, которые здесь не указаны. Кроме стандартных, разумеется. А может и стандартные у GSC перегружены / переписаны. Если это, уже где-то "разжёвано", то, пожалуйста, покажите направление куда смотреть. Заранее, признателен за ответы.
  3. Shkiper2012

    X-Ray extensions

    @Дизель Да, согласен, знаю об этом. Думаю, что можно сделать, в таком случае. Жаль от идеи отказываться. @dsh Да, вроде того.
  4. Shkiper2012

    X-Ray extensions

    @dsh Разумеется. Для выглядывания из-за укрытия, когда чуть-чуть не хватает высоты для ведения огня, или, наоборот, нужно посмотреть под машиной/в проломе и т.д. Взгляд меняет высоту при прокрутке колесика мыши + при нажатой клавише. Естественно, в пределах разумного (без читерства). Мне очень понравилась фишка в этом ролике. Решил реализовать "скриптовыми" силами. По-хорошему, это надо через движок делать, но я с "плюсами" ещё не подружился. Нормальной анимации тоже пока нет. PS. Тоже, можно сделать и бегом/ходьбой актора - при прокрутке колесика менять скорость его передвижения.
  5. Shkiper2012

    X-Ray extensions

    Установка/Получение высоты камеры актора. (Может пригодится кому-нибудь...) Скрытый текст -- Установка высоты камеры актора. -- function set_camera_height(v) db.actor:set_actor_float(nil, v, 1204) end -- Получение высоты камеры актора. -- function get_camera_height() return db.actor:get_actor_float(1204) end -- Получение высоты камеры актора из файла "actor.ltx". -- function get_camera_height_default() return system_ini():r_float ("actor","camera_height_factor") end
  6. Shkiper2012

    Работы Cromm Cruac (CoP)

    Как в ОГСЕ 0693, правда я в этот мод не играл, а только взял скрипт, как образец. И как он(выброс) выглядит в ОГСЕ, слабо себе представляю. Нет опций в меню, есть только настроенная погода для r1 и r2 + выброс. Всё. Да, это не полноценный Атмосфер, спору нет. Но, я делала для себя, и этого мне хватало. Я думал над этим, хотел сначала использовать движок от "Xray Extensions", но потом забил на это. Ни что не мешает, тебе или кому-либо ещё, взять и доработать адаптацию. Ничего моего там нет, я только взял и соединил то, что уже было сделано до меня. Если, кто возьмётся, то надо иметь в виду, что это адаптация (ну, или попытка адаптации) предназначена для мода БП, а там на первом рендере почему то небо очень темное, может дело в шейдерах или ещё в чем-либо. Я не стал разбираться и просто в конфигах выкрутил яркость неба на максимум.
  7. Shkiper2012

    Работы Cromm Cruac (CoP)

    Мод "Боевая Подготовка" версии 2.0.2 на платформе ТЧ, поэтому и адаптация AtmosFear'а соответствующая. Да, но только текстуры, скриптовая составляющая изменена. Отсутствуют: радиоактивные и кислотные осадки, пси-шторм (забыл это указать в описании).
  8. Shkiper2012

    Работы Cromm Cruac (CoP)

    Адаптация мода "AtmosFear" для мода "Боевая Подготовка" v.2.0.2. В "Мастерской ТЧ" нет темы адаптаций работ Cromm Cruac для ТЧ (а мод "БП_2.0.2" вышел именно на платформе ТЧ), поэтому выкладываю сюда.
  9. Shkiper2012

    Магазинное питание оружия

    Адаптация мода "Магазинное питание" для мода "Боевая Подготовка" v.2.0.2. Отличие от ранее мной выложенной версии в посте #963: + анимация снаряжения вместо "окна выбора типа патронов". + добавлены места для сна. + мелкие правки. Полное описание в архиве.
  10. @TIGER_VLAD, Если используешь движок, где есть коллбэки на нажатие/удержание/отпускание клавиш (например, X-Ray extensions), то можно попробовать так: [spoiler=noclip.script] --[[ ------------------------------------------------------------------------------------------------------- -- File: noclip.script -- Description: Noclip режим (режим свободного полета). --]] ------------------------------------------------------------------------------------------------------- local debug_log = true -- Пишем лог? Да = true / Нет = false local module_init = true local module_name = script_name() local function dbg_logf(fmt,...) if debug_log then log1(fmt,...) end end noclip_active = true -- Вкл. = true / ВЫКЛ. = false local distant_step = 1 -- Кол-во метров, на который смещается камера в режиме NOclip. -- Вкл./ВЫКЛ. режима NOclip. -- function noclip_ON_OFF() if (noclip_active == true) then dbg_logf("~~noclip >>> OFF ") noclip_active = false -- ВЫКЛ.режим бога. -- local console = get_console() console:execute("g_god off") else dbg_logf("--noclip >>> ON ") noclip_active = true -- Вкл.режим бога. -- local console = get_console() console:execute("g_god on") end end -- Коллбэк на удержание клавиши. -- function on_key_hold(key, bind) if (noclip_active == false) then return true end -- kR -- +1 метр к скорости! -- if bind == key_bindings.kWPN_RELOAD then distant_step = distant_step + 1 end -- kT -- -1 метр к скорости! -- if bind == key_bindings.kWPN_FUNC then distant_step = distant_step - 1 if distant_step <= 0 then distant_step = 1 end end -- kW -- Вперед! -- if bind == key_bindings.kFWD then local position = db.actor:position() local direction = device().cam_dir db.actor:set_actor_position(position:mad(direction, distant_step)) end -- kS -- Назад! -- if bind == key_bindings.kBACK then local position = db.actor:position() local direction = device().cam_dir db.actor:set_actor_position(position:mad(direction, (-distant_step))) end -- kA -- Стрейф влево! -- if bind == key_bindings.kL_STRAFE then local position = db.actor:position() local direction = device().cam_right db.actor:set_actor_position(position:mad(direction, (-distant_step))) end -- kD -- Стрейф вправо! -- if bind == key_bindings.kR_STRAFE then local position = db.actor:position() local direction = device().cam_right db.actor:set_actor_position(position:mad(direction, distant_step)) end -- kSpace -- Наверх! -- if bind == key_bindings.kJUMP then local position = db.actor:position() local direction = device().cam_top db.actor:set_actor_position(position:mad(direction, distant_step)) end -- Left SHIFT -- Вниз! -- if bind == key_bindings.kCROUCH_TOGGLE then local position = db.actor:position() local direction = device().cam_top db.actor:set_actor_position(position:mad(direction, (-distant_step))) end end if module_init then dbg_logf("**DBG: LOADING MODULE: "..module_name..".script -- Ok. ") end Во время режима NOclip я включаю режим бога, чтоб гг не застрелили пока он летит до пункта назначения. Клавишами R(по-умолчанию "Перезарядка") и T(у меня это = "Переключение на подствольник") регулирую скорость (а точнее, кол-во метров на которое смещается камера). Клавиши: W,A,S,D - управление как обычно.
  11. Shkiper2012

    Магазинное питание оружия

    Адаптация "Магазинного питания" к моду "Боевая подготовка" версии 2.0.2 Ссылка: https://yadi.sk/d/TYMqSNdzsUGEX Анимация снаряжения магазинов в данной версии НЕ используется. Вместо этого будет появляться окно с выбором боеприпасов для оружия. Обновление 1 к адаптации мода "Магазинное питание" к моду "Боевая подготовка 2.0.2" Соедините, пожалуйста, это сообщение с уже написанным здесь же: http://www.amk-team.ru/forum/topic/10356-magazinnoe-pitanie-oruzhiia/?p=1020174 Заранее признателен. Сообщения объединены. Kirgudu
  12. Shkiper2012

    X-Ray extensions

    Обращение к тем, кто развивает проект ХЕ. Небольшие хотелки/пожелалки для [ТЧ 1.0006]: -- 1 -- Можно ли сделать правку на отключение авто-перезарядки оружия. Сейчас делаю с помощью удаления и возврата(спавна) патронов для активного слота с оружием, при открытии/закрытии инвентаря и перебиндом клавиш. С правкой - такой возни со спавнами-переспавнами можно было бы избежать. -- 2 -- При проигрывании анмации перезарядки с помощью "play_hud_animation" у оружия на классе "РПГ7", если у ГГ нет в инвентаре заряда для этого оружия - анимация проигрывается без изображения этого заряда. То есть, как будто ГГ заряжает РПГ невидимым зарядом. Будет замечательно, если это можно поправить.
  13. Shkiper2012

    X-Ray extensions

    @naxac, нет, так тоже не работает.
  14. Shkiper2012

    X-Ray extensions

    Вопрос к тем, кто пользуется level.send_event_key_press(dik) / level.send_event_key_hold(dik) / level.send_event_key_release(dik). Исх.данные: ТЧ 1.0006 - ХЕ (с гитхаба - last commit 26_Dec_2015 ) Хочу сделать, чтобы при нажатии на клавишу приближения/прицеливания из бинокля/оружия НЕ нужно было саму эту клавишу держать нажатой. Например: нажал один раз - прицелился из оружия, нажал еще раз - оружие в исходное положение. local zoom_wpn = false -- Коллбэк на нажатие клавиши. -- function on_key(key, bind) -- тут проверка - что в руках? оружие/бинокль или что-то другое. -- -- после проверки: -- if bind == key_bindings.kWPN_ZOOM then if not zoom_wpn then zoom_wpn = true level.send_event_key_press(DIK_keys.MOUSE_2) level.send_event_key_hold(DIK_keys.MOUSE_2) else zoom_wpn = false level.send_event_key_release(DIK_keys.MOUSE_2) end end end Но, я что-то делаю не правильно и у меня этот код не работает. Коллбэк на нажатие работает без проблем (проверено). Сама "имитация" нажатия не фурычит (у меня). Если кто знает в чем дело - подскажите, плз. Или может фишку с приближением/прицеливанием по нажатию один раз на клавишу - уже реализовали по-другому? Заранее признателен ответившим.
  15. Shkiper2012

    X-Ray extensions

    Ребят, кто занимается развитием ХЕ. Посмотрите, пожалуйста, метод play_hud_animation - проигрования анимации. при проигрывании анимации (например, перезарядки оружия), если анимация прерывается, например: выкинул или спрятал оружие, либо еще что-то... то это иногда-редко-но-метко вызывает сбой логики и бою сейвов, а так же вылетам: 001B:03577578 xrGame.dll [error][ 183] : Невозможно создать файл, так как он уже существует. или 001B:03755AF0 xrGame.dll [error][ 87] : Параметр задан неверно. Исх.данные: ТЧ 1.0006 - ХЕ_230_портабл Что делаю: local active_slot = db.actor:active_slot() if active_slot then if (active_slot == 1 and db.actor:item_in_slot(1) and db.actor:item_in_slot(1):is_weapon()) then wpn_in_slot = db.actor:item_in_slot(1) wpn_in_slot_section = wpn_in_slot:section() elseif (active_slot == 2 and db.actor:item_in_slot(2) and db.actor:item_in_slot(2):is_weapon()) then wpn_in_slot = db.actor:item_in_slot(2) wpn_in_slot_section = wpn_in_slot:section() end if wpn_in_slot:has_hud_animation("reload") then wpn_in_slot:play_hud_animation("reload", true) end end Так вот, собственно просьба: Если это возможно, наладить стабильность работы этого метода. А может я что-то не так делаю, если да, то ткните "куда копать". =) Если кто-то уже сталкивался с этим, то отпишитесь, пожалуйста, как выходили из такой ситуации?
  16. Shkiper2012

    X-Ray extensions

    @UnLoaded, если проигрываешь анимацию по методу play_hud_animation(), то флаги оружия, кол-во патронов и их тип - не меняются. Проигрывается только анимация, всё остальное остается на своих местах.
  17. Shkiper2012

    X-Ray extensions

    Исх.данные: ТЧ 1.0006, XE_r.226 Нужда: Поймать момент окончания проигрывания анимации по методу play_hud_animation() Искал инфу: по форуму и вообще по инету - ничего вразумительного не нашел. (может плохо искал.) Как грамотно пользоваться вот этим: set_hud_animation_channel -- устанавливает номер канала блендинга анимации, который будет передан в колбек на завершение анимации. set_hud_animation_callback_param -- устанавливает произвольный параметр, который будет передан в колбек на завершение анимации. set_use_hud_animation_callback -- включает использование колбека на завершение анимации. get_hud_animation_remaining_time() -- возвращает время, оставшееся до окончания текущей анимации. У меня всегда = 0, почему-то... =) Вот, например у меня идет запуск анимации "Перезарядки"... local active_slot = db.actor:active_slot() if active_slot == 2 and db.actor:item_in_slot(2) ~= nil and (string.sub(db.actor:item_in_slot(2):section(),1,4) == "wpn_" or string.sub(db.actor:item_in_slot(2):section(),1,2) == "w_") then log1("--play reload begin") local slot_2 = db.actor:item_in_slot(2) slot_2:play_hud_animation("reload", true) local has_hud_reload = slot_2:has_hud_animation("reload") if has_hud_reload == true then log1("**has_hud_reload = true") else log1("**has_hud_reload = false") end local time_reload = slot_2:get_hud_animation_remaining_time() log1("**time_reload = "..time_reload) -- В логе: почему-то у меня всегда = 0... Что не так? local time_reload_length = slot_2:get_hud_animation_length("reload") log1("**time_reload_length = "..time_reload_length) -- В логе это: **time_reload_length = 2541 -- Это надо думать в мили-секундах.... log1("--play reload end") end Куда и как нужно добавить выше перечисленные методы? Если, кто знает, отзовитесь, пожалуйста. Заранее признателен.
  18. Признателен всем ответившим. Для себя нашел такой выход, как создание "нового" класса на базе "object_binder" для нужного предмета. И уже в нем задаю нужные параметры. Хотя ХЕ и 7, тоже интересуюсь, но пока только хожу около них, как кот у горячей каши, а "съесть" не могу. =) Ещё такой вопрос: как отловить момент перезарядки, разрядки и момент смены типов патронов у оружия? Есть ли флаг или что-то подобное для этого? Я сейчас "ловлю" последний патрон в стволе, но может быть есть более изящный способ? Для версии ТЧ 1.0006, нужно для манипуляций с оружием.
  19. Доброго времени суток. Вопрос: можно ли установить "состояние"(condition) предмету на классе "антирада"? Если - да, то как это корректно сделать. local sim = alife()local pos = db.actor:position() local lvid = db.actor:level_vertex_id() local gvid = db.actor:game_vertex_id() local pid = db.actor:id() local obj = sim:create("Мой предмет section", pos, lvid, gvid, pid) if obj then obj:set_condition(0.5) end Либо так: local se_obj = (alife():object(obj:id()) if se_obj then se_obj:set_condition(0.5) end Итог: вылет со строкой: attempt to call method 'condition' (a nil value) Мне это нужно для того, чтобы: несколько таких предметов не группировались в инвентаре ГГ, для отслеживание их состояния, а так же возможность их использования. Если подобное уже описывалось на форуме - ткните куда копать. Поиск не выдал ничего конкретного(либо я плохо искал.). Заранее признателен.
  20. Как повернуть заспавненый предмет (в моём случае тайник с хабаром)? Вот что делал: function spawn() local tay_01 = "" local dir = tay_01:direction() dir.x = 0 dir.y = -1,571 dir.z = 0 tay_01 = alife():create("taynik_01",vector():set(-233.226,-20.034,-152.465),21331,47) end 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 : [error]Arguments : LUA error: ...\games\s.t.a.l.k.e.r\gamedata\scripts\tayniky.script:4: attempt to call method 'direction' (a nil value) А если просто спавню (alife():create и т.д.) без разных local-ов, то всё в норме - тайник с "нищтяками" появляется. Но мне нужно его повернуть на 90гр. Если кто знает, подскажите, буду признателен.
  21. @Disord, перезалей, пожалуйста "Поворот Актора", ссылка сконачалась.
  22. Вопрос тем, кто ковырял настройки пда. Вообще хочу перенести мини-карту с худа в пда ==> в раздел контакты, примерно так как на скрине. Где копать? И это вообще реально сделать или закопано это закопано в движок? Сам ковырял файлы начиная от pda.xml и до zone_map.xml. Особым успехом это не закончилось, потому прошу помощи у знающих.

AMK-Team.ru

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