Все посты %s в %S - AMK Team
Перейти к контенту

ОП 2.2: Правки и модификации


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

Консольный sv_setweather <имя_погодной_секции> В ОП нынешнем заблочен :blink:? "Нажималка", кстати, его и использует.

  • Спасибо 1
  • Нравится 2

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


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

@JJJ_KG_312 , попробуй для начала интереса ради gamedata\config\misc\rx_weapon_mgr покрутить.

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

 

; определение приоритета оружия:
; 0 - отключено, 1 - по цене, 2 - по параметрам, 3 - заданный вручную
mode1 = 3

 

; приоритет оружия, больше значение - выше приоритет
; используется для mode1 = 3
priors = priors_def ; секция в этом файле

 

[priors_def]

...

 

 

  • Спасибо 2
  • Нравится 2

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


Ссылка на сообщение
10.07.2022 в 17:27, RedRevolution1917 сказал:

Задача не просто заменить уже существующие композиции, а добавить в игру новые флешки сверх тех 16, что уже есть и прописать их в торговлю разным НПС.

 

@RedRevolution1917

1. Добавить новую флешку, по аналогии с уже имеющимися в конфиге.

gamedata\config\misc\ogg_player.ltx

X - нужное нам число:

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

; Х - номер флешки.
[ogg_flash_X]:II_ANTIR
visual          = dynamics\devices\flash_01.ogf ;-- моделька флешки
description      = 
inv_name           = ogg_flash_inv_1 ;-- название в нвентаре
inv_weight       = 0.02 ;-- вес в инвентаре
inv_grid_width        = 1 ;-- размер иконок
inv_grid_height        = 1 ;-- размер иконок
inv_grid_x            = 40 ;-- положение на полотне иконок
inv_grid_y            = 40 ;-- положение на полотне иконок
cost    = 2500    ; стоимость флешки
item_use_only                = true
script_description     = descriptors.usb_flash ;-- обработчик предметов

 

Как это работает:
gamedata\scripts\descriptors.script

Скрытый текст
function usb_flash(obj,input_section)
    local section = obj and obj:section() or input_section
--* номер флешки. X.
    local flash_index=section:match("ogg_flash_(%d+)")
    if not flash_index then
        abort("! ERROR Invalid conversion on getting flash_index from "..section)
    end
    local txt=translate(config:r_string(section, "inv_name"))
    for track_index=1,12 do
--* Наименование флешки и трека. flash_X_track_Y.  Х -номер флешки, Y - номер трека [1..12] 
            local track_name="flash_"..flash_index.."_track_"..track_index
            txt=txt.."\\n%c[255,1,255,255]"
            ..translate("track_name_desc")
            .." "
            ..string.format("%02d", track_index)
            .." "
            ..":%c[255,1,255,1] "..translate(track_name)
        end
    return txt
end

X - номер  флешки из gamedata\config\misc\ogg_player.ltx

Y - номер трека для этой флешки (значения: от 1 до 12)

Название звуковых файлов:

player_ogg.script

Скрытый текст
function play_track(track_index)
    if track_index then
        player_data.track=track_index
    end
    if player_data.track ==-1 or player_data.flash == -1 then
        s_play([[ogg_player\flash_nil\sound_1]])
        return
    end
--* путь и наименование звукового файла
    local track_path=[[ogg_player\flash_]]..player_data.flash..[[\sound_]]..player_data.track
    s_play(track_path)
end

 

2. Добавленные треки (звуковые файлы) должны находится в соответствующей папке (по аналогии с существующими) и иметь нужные комментарии. Что это такое - можно посмотреть здесь. Инструментарий - например, здесь. Просто открыть уже существующие треки и добавить по аналогии в свои звуковые файлы нужные значения.

 

3. Прописать флешку нужному торговцу. 

gamedata\config\trade\имя_торговца.ltx

ogg_flash_X - наименование нашей флешки из п.1 

 

p.s.: NB! Из разряда ОБС (не проверялось). Но попробовать не долго, в любом случае. По вопросам лучше в ПМ (быстрее будет :biggrin:).

 

 

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

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


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

@GReYKW , доброго...

Можно, разумеется. См. archievements.script, в зависимости, что, где и когда выдаётся. Главным образом - либо инфорпоршни, либо количество необходимого. И подправить нужное при необходимости.

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


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

@onix12 , вообще, оно достаточно несложно находится поиском по целевым предметам (af_soul, ammo_12.7x108).

dialogs_buusty.xml

<dialog id="barter_sahar127">

buusty_dialog.script

--* прекондишен
function _10souls_have()
	return has("af_soul",10)
end
--* экшен
function _127_108(first_speaker, second_speaker)
	lost("af_soul",10)--* отдаём
	got("ammo_12.7x108",4)--* забираем
end

и далее аналогично для других типов боеприпасов.

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

Гы, а ОП-цы, выходит, так и не сподобились унифицированную систему для обмена состряпать? Вот же ж затейники!

 

  • Спасибо 2

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


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

@dimon1105 
biodetector.script
Начальные установки:

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


-- верхний левый угол окна (координаты левого верхнего угла текстуры биорадара)
--* 1024 = const. Корректировать по желанию. min = 0. Начальное значение.
--* 0 = const. Корректировать пожеланию. мах = 768 - biomap_heigth. Начальное значение.
local biomap_x = 1024-biomap_width --* положение текстуры по горизонтали.
local biomap_y = 0 --* положение текстуры по вертикали.


 


Аналогично, но уже с учётом поправок под конкретное разрешение в игре. (5:4, 16:9, 16:10 и т.д.)

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


function update(delta)
...
--* biomap_width, biomap_heigth, значения определяются в зависимости от scale_x для каждого из типов разрешения (5:4, 16:9, 16:10 и т.д.)
            scale_x=(screen.height/screen.width)/(768/1024) --* коэффициент поправки для (5:4, 16:9, 16:10 и т.д.)
            scale_y = scale_x
            if scale_x==1 then
                biomap_heigth=256 --* высота текстуры
                biomap_width=256 --* ширина текстуры
                --log("1:1")
            elseif scale_x> 0.7 and scale_x<0.82 then
                biomap_heigth=340
                biomap_width=315
                --log("16:9")
...
            end

--* Координаты текстуры биорадара на экране.
            biomap_x = 1024-biomap_width*scale_x --* это смещение текстуры по горизонтали.
            biomap_у = 0 + const --* это смещение текстуры по вертикали.


 

 

Подвижная часть рассчитывается уже относительно этих координат.

 

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

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


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

Вообще, оно, по идее, здесь (предположительно).

amk.script

Скрытый текст
    -- Эффекты при падении здоровья
    if db.actor:alive() then
        if prev_health > db.actor.health+0.05 then
            level.add_pp_effector("amk_shoot.ppe", 2011, false) -- запускаем визуальный эффект при попадании по ГГ
            level.set_pp_effector_factor(2011, (prev_health-db.actor.health)*100) -- и эффекты камеры в заисимости от того, насколько сильно попали по ГГ
            if prev_health > db.actor.health+0.2 then -- попали
                local cameffs, sounds
                if prev_health > db.actor.health+0.5 then -- очень сильно
                    cameffs = {"head_shot","fusker"} -- набор эффектов для проигрывания 
                    sounds = {"pain_4","pain_1","hit_5","hit_6"} -- звуки
                else -- не очень сильно
                    cameffs ={"shell_shock","hit_front","hit_right","hit_back","hit_left","hit_front_left","hit_back_left","hit_front_right","hit_back_right"} -- набор эффектов для проигрывания 
                    sounds = {"pain_2","pain_3","pain_5","pain_6","pain_7","pain_8"} -- звуки
                end
      -- и запускаем случайный эффект из набора
                level.add_cam_effector("camera_effects\\"..cameffs[math.random(#cameffs)]..".anm", 999, false, "")
      -- и звук
                say("actor\\"..sounds[math.random(#sounds)])
                --winsor: на... зачем т.е.... это??? уже пошли легенды о предметах, которые пропадают сами по себе...
-- в переводе на русский - не используется
                --[[
...
                --]]
            end
        end
        prev_health = db.actor.health
    end
end

 

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


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

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

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