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

[SoC] Ковыряемся в файлах


Halford

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

@Pir@t@s , докинь из gamedata.dbc (5-й патч) и gamedata.dbd (6-ой патч). Последовательно, с заменой файлов.

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

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


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

Должно, по идее, быть тут:

ui_mm_load_dlg.xml -> тут. Width - общая ширина списка (наименование итема+полоса прокрутки)

 

 

 

Изменено пользователем Купер

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


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

А вот такая порнография:

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

1.jpg

Логически статики должны быть дочерними, однако, нет.
Т.е., xml - общая ширина списка. script - положение наименования и даты.

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


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

Мы говорим об одном и том же, только разными словами:

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

2.jpg

Простое редактирование ширины списка не приведёт к автоматическому масштабированию положения дочерних его элементов.

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


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

Други, надоумьте: как грамотно "разделить" обычные инвентарные ящики и тайники (условно ящик Сидоровича и штатный тайник). Т.е., допустим, необходимо отметить перебором тайники, но ящики при этом не трогать. Вертятся  в голове варианты с вычиткой из конфигов ( ini_file(), spawn_ini() ) и последующей отсечкой по всякому :biggrin:. Другое решение имеется? Объекты серверные.

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


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

@Pir@t@s , попробуй параметр vert_align = "c" добавить (выравнивание текста по вертикали = по центру:

<text font="graffiti32"  r="240" g="217" b="182" a="255" align="c" vert_align="c"/>

"Родительским" фреймом и для текстуры ui_hud_frame_task, и для текста является <main_task>...</main_task>. Т.е., они "вписаны" в него, и их координаты отсчитываются относительно этого фрейма.

x=0, y=0 для текста и текстуры это <main_task  x="200" y="120".

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

1.jpg

align="c" vert_align="c" - модификаторы, которые выравнивают текст относительно родительской формы. Т.е, в данном случае -с. Выравниваем текст относительно размеров main_task горизонтально и вертикально по центру.

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

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


Ссылка на сообщение
Скрытый текст
class "se_item"	(cse_alife_item) --* <- работает
function se_item:__init (section) super (section)
end

function se_item:on_register()--* <- НЕ работает
	cse_alife_item.on_register( self )
	-- Регистрация в таскменеджере
	task_manager.get_random_task():register_target(self)

	-- Собираем статистику по предметам.
	if registred_items[self:section_name()] == nil then
		registred_items[self:section_name()] = 1
	else
		registred_items[self:section_name()] = registred_items[self:section_name()] + 1
	end
end

Имеет место быть?

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


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

"Исходники... Исходники - они большие." (с) @Dennis_Chikin
В общем, не работает данный метод для этого класса объекта, похоже.

Отрывать вот эту саму кучу всякого на загрузке. И уже по месту в task_manager регистрировать.

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


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

@dsh , нет, что касается именно "оружие+костюмы" - работает даже в оригинале, хотя само решение спорное: на каждой загрузке регистрировать кучу объектов. se_item.script:

Скрытый текст
class "se_weapon" (cse_alife_item_weapon)
function se_weapon:__init (section) super (section)
end
function se_weapon:on_register()
    cse_alife_item_weapon.on_register( self )
    -- Регистрация в таскменеджере
    task_manager.get_random_task():register_target(self) --< вот это
  ...
end

 

А применительно к:

Скрытый текст
class "se_item"    (cse_alife_item)
function se_item:__init (section) super (section)
end
function se_item:on_register()
    cse_alife_item.on_register( self )
    -- Регистрация в таскменеджере
    task_manager.get_random_task():register_target(self) --< вот здесь не работает
end

 

 

  • Полезно 1

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


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

Total Commander, вообще, парень презабавный, доложу я вам: вот знает как, но не знает что.

По факту: для класса se_item (cse_alife_item) метод __init работает, метод on_register - нет. Оригинал.

  • Полезно 2

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


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

Мастер, это, конечно, хорошо. Ошибка-то в регулярке где? Которую OGSR съедать не хочет. Что, впрочем, было понятно с самого начала.

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


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

@Anikot , на оригинальную ТЧ вряд ли получится: нужна, как минимум, движковая правка от "перескока" камеры при смерти ГГ. X-Ray Extensions (как простейший вариант) - там это есть. И дальше уже см. выше.

 

@ADept330 ,

1. лог бы полный для начала (ничего там секретного нет). По тому, что есть - просто какие-то дебаг-сообщения.

2. Из разряда фантастики - попробовать поставить всё-таки на дисковую лицензию.

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


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

@ADept330 ,

по 2 вот здесь, например. В конфиге для какого-то ствола прописана установка возможного навеса (подствол, пбс, прицел), а на самой модели (та, которая АВС.ogf) это не предусмотрено. Тут надо смотреть, что в X-18 такого из оружия уникального появляется (что там приблизительно по сюжету может быть - что-то из АК серии, РПГ ? ). Проще всего по времени - через спаунер просмотреть возможные варианты оружия.А лучше все - от греха :biggrin:! И в конфиге потом привести в соответствие.

по 1 - вот :unknw:. И легче не стало. Steam движок - это steam движок :biggrin:.

Изменено пользователем Купер
  • Полезно 1

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


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

@ALEKCZY , ещё вот тут можешь попробовать посмотреть. Не артосокод, зато без "венгерки". 

По картам, глобалке и прочему: более предметно тут и тут.

  • Полезно 1

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


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

@DarkSnowder , "... некоторые мёртвые сталкеры" - формулировочка :biggrin:!


По идее здесь: stalker_generic.script -> function reset_show_spot(npc, scheme, st, section)
Попробуй посмотреть для понимания как, например, в Солянке реализован вывод меток в зависимости от сложности.

Скрытый текст
--* (с) Солянка
function reset_show_spot(npc, scheme, st, section) counterAdd("stalker_generic.reset_show_spot")
    local spot_section
    if scheme == nil or scheme == "nil" then
        spot_section = utils.cfg_get_string(st.ini, st.section_logic, "show_spot", npc, false, "")
    else
        spot_section = utils.cfg_get_string(st.ini, section, "show_spot", npc, false, "")
    end
    if spot_section == nil then
        spot_section = "true"
    end
    local spot = "false"
    local ignoredCommunity = { ["zombied"] = true, ["fotoman"] = true, }
    if not ignoredCommunity[npc:character_community()] then
        local spot_condlist = xr_logic.parse_condlist(spot_section, npc, section, "show_spot")
        spot = xr_logic.pick_section_from_condlist(db.actor, npc, spot_condlist)
    end
  
    local sim = alife()
    if not sim then return end
    local obj = sim:object(npc:id())
    if obj then
        local alive = npc:alive()
     --* вот где-то здесь. В звисимости от вводных.
        if spot == "false"
            or IAmAStalker[npc:clsid()] and (
        		alive and npc:relation(db.actor) == game_object.enemy and
                (not game_options.minimapSpots_showEnemyLiveOnNovice or level.get_game_difficulty() > 0)
                or
                not alive and utils2.community_relation_name(npc:character_community(), db.actor) == "enemy"
                and game_options.minimapSpots_hideEnemyDeathOnMaster
                and level.get_game_difficulty() == 3
      			)
        then       
            obj:visible_for_map(false) -- прячем
        else     
            obj:visible_for_map(true)-- ставим
        end
    end
end

 

 

 

Изменено пользователем Купер

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


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

@DarkSnowder , штатный параметр логики НПС: show_spot
Примеры использования в оригинале: сотоварищи Петрухи на Кордоне, десантоспецназ, высаживающийся на Агропроме после спасения группы Крота.

Изменено пользователем Купер

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


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

Товарищи знающие, подскажите, а каков допустимый диапазон для параметров у ПБС:

bullet_hit_power_k
bullet_speed_k
fire_dispersion_base_k
cam_dispersion_k

 

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


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

@shahvkit , ОП же, если не ошибаюсь? С учётом этого: базовая величина для self.idle_time = 1 час.

Попробуй все места, откуда это значение вызывается, переделать на минуты:

game.hours()+self.idle_time -> game.minutes()+self.idle_time.

И само значение, конечно, задавать в минутах.

Изменено пользователем Купер
  • Полезно 1

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


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

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