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

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

16 минут назад, naxac сказал(а):

эти функции вызываются в биндерах неписей и монстров.

Да... это понятно... Это был наводящий вопрос.

16 минут назад, naxac сказал(а):

В скрипте используются заполняемые этими функциями таблицы.

Я на это и хотел обратить внимание вопрошающего. Кроме monster_stock ни одна таблица не используется.

И вообще... Функция update_friends_and_target тот ещё "шедевр".

Изменено пользователем WinCap

S.T.A.L.K.E.R. CoP Objects (upd 10.04.24)


Подарки

  • Ссылка на комментарий
    Только что, naxac сказал(а):

    эти функции вызываются в биндерах неписей и монстров

    Полностью согласен.

     

    3 часа назад, I am Dead сказал(а):

    Хмм, действительно тут уж правильней будет

     

    3 часа назад, Kirgudu сказал(а):

    Как ни странно

    Посвятите в нужном направлении, или похмелитесь.

    • Не нравится 1
    • Сомнительно 2
    Ссылка на комментарий

    У меня вопрос, почему для управления транспортом скриптами используется FSM, все эти экшены команды  и тд... (почитать об этом). На сколько корректно будет, если создам методы для управления техникой в классе CCar ?

    Ссылка на комментарий

    А как вообще двигаются БТРы сюжетные? В Темной Долине, например. Импульсом? 

    Как это работает? :)

    У меня БТРы сломались и не едут, пытаюсь понять куда копать. 


    Подарки

  • Ссылка на комментарий

    local file = getFS():update_path("$app_data_root$", "launcher .ltx")
        
        self.name = "actor_ID"
        
        if (file:section_exist("logins")) then
             self.name = file:r_string("logins", "display_name")

    end
     

    Помогите со скриптом. Пытаюсь обратиться к конфигу, используя класс FS, но игра вылетает, ругается на функцию section_exist. Заранее спасибо.

    Ссылка на комментарий
    3 часа назад, Prophet2002 сказал(а):

    Помогите со скриптом.

     

    Скрытый текст
    
    	self.name = "actor_ID"	
    	
    	local file = ini_file(getFS():update_path("$app_data_root$", "launcher.ltx"))
    	
    	if file and file:section_exist("logins") then
    		self.name = file:r_string("logins", "display_name")
    	end

     

     

    S.T.A.L.K.E.R. CoP Objects (upd 10.04.24)


    Подарки

  • Ссылка на комментарий

    @Prophet2002 Пытаетесь вызывать методы ини файлов на обычном файле. Для создания экземпляра объекта ини файла нужно выполнить код:

    ini_file("misk\items.ltx") -- Аргумент - путь до файла относительно папки config(s)

    Как видно из Вашего примера Вы пытаетесь прочитать файл не из папки конфигов. Но тут может помочь ф-ция создания ини файла из строки:

    create_ini_file([[ [section] key = value ]]) -- Аргумент - текст ини файла

    Вычитывайте строку из нужного файла и выставляйте в вышеуказанную ф-цию.

    Крайне рекомендую к ознакомлению - https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkciyam-i-klassam/

     

    @WinCap Абсолютные пути в ini_file работают?

    • Полезно 1
    Ссылка на комментарий
    2 часа назад, Graff46 сказал(а):

    Абсолютные пути в ini_file работают?

    Нет, конечно, не работают!:facepalm: Совсем про это забыл. Спасибо, что напомнили.

     

    @Prophet2002 Если нужно прочитать ini-файл НЕ из папки config, придется прибегнуть к хитрости:

    Скрытый текст
    
    
    	-- Открытие файла из стандартных папок игры:
    	local fs = getFS():r_open("$app_data_root$", "launcher.ltx")
    
    	-- Создание "виртуального" ini-файла из строки:
    	local file = create_ini_file(fs:r_stringZ())
    
    	if file and file:section_exist("logins") then
    		self.name = file:r_string("logins", "display_name")
    	end

     

    Напомню, что в файле fsgame.ltx можно добавить своё описание пути никак не связанное с игрой. Например:

    $c_games$ = false| false| c:\Games\

    Изменено пользователем WinCap
    • Полезно 4

    S.T.A.L.K.E.R. CoP Objects (upd 10.04.24)


    Подарки

  • Ссылка на комментарий

    Здрасьте.

     

    [ЗП 1.6.02] Создание кнопки CUI3tButton() с тегом frame_mode=1. Судя по описанию, должна получиться кнопка с состояниями d/e/h/t и масштабированием по горизонтали через подстановку частей b/back/e (= CUIFrameLine).

    Создал 12 текстур-частей _d_b/back/e, _e_b/back/e, …, указал ссылку на базовое имя – вылет. Указал текстуры в описании кнопки блоками <texture_d>name_d</texture_d> в расчете на подстановку текстур b/back/e – вылет.

    По образу и подобию кнопки "ui_inGame2_pda_button" создал набор d/e/h/t с полными текстурами и отдельные наборы с частями, названными _E_b/back/e, _H_b/back/e, _T_b/back/e – вылет.

    Добавил в [configs\ui\textures_descr] описание для частей b/back/e по полным текстурам – вылет.

    Указал ссылку на текстуру "ui_inGame2_pda_button" – вылет. Для справки, все предполагаемые части этой текстуры даны ссылками на пустое место.

     

    Создание кнопки в обычном состоянии по полным текстурам d/e/h/t работает – скриптовая часть и ссылка на папку с текстурами точно правильные.

    Ошибка каждый раз одна и та же: "similar(m_tex_rect[flFirst].height(), m_tex_rect[flSecond].height())" – разная высота частей масштабируемой текстуры, хотя все части нарезаны из одной текстуры и имеют одинаковую высоту.

     

    Такое впечатление, что масштабирование текстуры кнопки не работает, и его просто забыли закомментировать в движке. Есть какая-то информация?

    Мини-моды: ТЧ ЧН ЗП

    Шпаргалка

    Ссылка на комментарий

    @Norman Eisenherz , строчка, обрабатывающая это, закомментирована в движке:

     
    
    
    bool CUIXmlInit::Init3tButton(CUIXml& xml_doc, const char* path, int index, CUI3tButton* pWnd){
        R_ASSERT3(xml_doc.NavigateToNode(path,index), "XML node not found", path);
    
    //.    pWnd->SetFrameMode(xml_doc.ReadAttribInt(path, index, "frame_mode", 0) ? true : false);
    
        InitWindow            (xml_doc, path, index, pWnd);

     

    Изменено пользователем naxac

    Аддон для ОП-2.09.2: Яндекс/Google/GitHub

    naxac.gif


    Подарки

    Ссылка на комментарий

    @naxac Так это еще в ТЧ, а в ЧН и ЗП описание с виду вполне рабочее. На всякий случай, уточняю место: [xrGame\ui\UIXmlInit.cpp] bool CUIXmlInit::Init3tButton(…). Должно получиться 4 окна CUIFrameLine – по одному на каждое состояние кнопки; или где-то дальше обработчик спотыкается, или я не понимаю, как правильно назвать части текстур.

    Мини-моды: ТЧ ЧН ЗП

    Шпаргалка

    Ссылка на комментарий

    @Norman Eisenherz , да, всё верно, прошу прощения, не в те исходники смотрел.

    Судя по всему, там должно быть 12 текстур в этом режиме: (_d, _t, _e, _h) + (_e, _b, _back). Но у тебя не работает так. Странно..

     

    В оригинале ЗП это, кстати, используется:

     
    
     <btn_second_task x="52" y="132" width="120" height="19" hint="ui_show_second_task_wnd" frame_mode="1">
    
      <window_name>btn_second_task</window_name>
    
            <texture_e>ui_inGame2_pda_missionlist_button_e</texture_e>
    
            <texture_t>ui_inGame2_pda_missionlist_button_ht</texture_t>
    
            <texture_h>ui_inGame2_pda_missionlist_button_ht</texture_h>
    
            <text align="c" vert_align="c" x="0" y="0" width="120" height="19" font="letterica16">missions_list</text>
    
            <text_color>
    
                <t r="255" g="255" b="255"/>
    
                <d r="255" g="255" b="255"/>
    
                <e r="200" g="200" b="200"/>
    
                <h r="170" g="170" b="170"/>
    
            </text_color>
    
     </btn_second_task>

     

    И описание текстур:

     
    
         <texture id="ui_inGame2_pda_missionlist_button_e_b" x="30" y="71" width="15" height="19" />
    
         <texture id="ui_inGame2_pda_missionlist_button_e_back" x="45" y="71" width="1" height="19" />
    
         <texture id="ui_inGame2_pda_missionlist_button_e_e" x="45" y="71" width="15" height="19" />
    
     
    
         <texture id="ui_inGame2_pda_missionlist_button_ht_b" x="104" y="71" width="15" height="19" />
    
         <texture id="ui_inGame2_pda_missionlist_button_ht_back" x="119" y="71" width="1" height="19" />
    
         <texture id="ui_inGame2_pda_missionlist_button_ht_e" x="119" y="71" width="15" height="19" />
    

     

    Изменено пользователем naxac

    Аддон для ОП-2.09.2: Яндекс/Google/GitHub

    naxac.gif


    Подарки

    Ссылка на комментарий

    @naxac Подставил ссылку на имеющийся вариант кнопки – вылет. Разделил эту же кнопку на 12 текстур (+d + h/t отдельно) – выводится. Осталось понять, что было не так в первом эксперименте…

    Ну, может кому пригодится:

    • в обозначениях частей нельзя использовать верхний регистр (пример с кнопкой ui_inGame2_pda_button из того же файла [ui_actor_pda] – мусор из старых версий);

    • части принимаются только с описанием – файлы-кусочки не подходят ни в каком виде, хотя для обычной кнопки можно указывать набор текстур и так.

    Мини-моды: ТЧ ЧН ЗП

    Шпаргалка

    Ссылка на комментарий
    2 минуты назад, I am Dead сказал(а):

    когда повреждены ноги хочу заблокировать бег

    можно просто заблокировать спринт

    Есть мод "Перелом ног". Не юзал, но по описанию  там правки движка из X-Ray extensions. Может что то перешло в ОГСР?

    • Спасибо 1

    Здесь могла быть ваша реклама.


    Подарки

  • 3
  • 3
  • 4
  • 5
  • Ссылка на комментарий
    37 минут назад, I am Dead сказал(а):

    хочу заблокировать бег

    В этом движке есть методы condition.cant_spint_power_begin и condition.cant_spint_power_end

    Если поставить

      get_actor_obj().condition.cant_spint_power_begin = 1
      get_actor_obj().condition.cant_spint_power_end   = 1

    то актор перестанет бежать.

    • Полезно 1
    Ссылка на комментарий

    Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

    Комментарии могут оставлять только зарегистрированные пользователи

    Создать аккаунт

    Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

    Зарегистрировать новый аккаунт

    Войти

    Есть аккаунт? Войти.

    Войти
    • Недавно просматривали   0 пользователей

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

    AMK-Team.ru

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