• Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.
Иконка ресурса

Интерфейс хф + исходники 0.7 + Rolo Ext 0.1

Нет прав для скачивания
Люди добрые, кто подскажет за PC Cafe Points?
В чем вопрос и почему спрашиваю в теме интерфейса.

В этом интерфейсе у меня PC Cafe Points может выглядеть так
(Рисунок 1) -
1761724952037.webp
Может выглядеть вот так (Рисунок 2) -
1761725085951.webp

А может выглядеть вот так (Рисунок 3) -
1761725350478.webp

На рисунке 3, количество PC Cafe Points просто не влезает в отведенное для них место (максимально можно накопить 200 000 очков). Но проблема не в самих очках PC Cafe, как таковых (200 000 отлично там помещаются), проблема в "таймере"(?) в квадратных скобках (вот эти [06:36] на рисунке 2), который периодически появляется вместе с очками PC Cafe. А всё вместе с этим "таймером" уже не помещается.

200 000 очков (без "таймера" в конце)
1761726262890.webp

И собстевнно вопросы. Что это за "таймер" в конце, какую информацию он несет игроку? Он может появиться/измениться/пропасть (прям рулетка) когда получаю новые очки (за прибывание в игре) или трачу уже имеющиеся. Цифры там постоянно разные, отсчет у "таймера" не ведется (вот как было [06:30], так и будет долго висеть эта цифра).
И можно ли как-то от этого "таймера" избавиться, не сломав счетчик PC Cafe Points?

В ExpBarWnd.uc нашел такой блок
Код:
function HandlePCCafePointInfo( String a_Param )
{
    local int Show;
    local Color TextColor;
    local String AddPointText;
    local String FullPointText;        //CT26P4_0323
    local int nDailyHour;
    local int nDailyMin;
    local int PCCafeTotalPoint;
    local int m_AddPoint;
    local int m_PointType;
    local int m_DailyPoint;   
    
    ParseInt( a_Param, "Show", Show );
    if (Show == 0) return;
    
    m_AddPoint = 0;
    
    ParseInt( a_Param, "TotalPoint", PCCafeTotalPoint );
    ParseInt( a_Param, "AddPoint", m_AddPoint );
    ParseInt( a_Param, "PointType", m_PointType );
    ParseInt( a_Param, "DailyPoint", m_DailyPoint);        //CT26P4_0323
    
    FullPointText = MakeCostString(String(PCCafeTotalPoint));

    //CT26P4_0323
    if (m_DailyPoint > 0)    // idk??
    {
        nDailyMin = m_DailyPoint / 20;
        nDailyHour = nDailyMin / 60;
        nDailyMin = nDailyMin - nDailyHour * 60;
        FullPointText = FullPointText $ " [" $ GetFormattedTimeStrMMHH(nDailyHour, nDailyMin) $ "]";
    }
    
    txt_ExpBarPCValue.SetText(FullPointText);

    if( 0 != m_AddPoint)
    {
        txt_ExpBarPCChangeValue.SetAlpha(0);
        
        if( 0 < m_AddPoint )
            AddPointText = "+" $ MakeCostString(String(m_AddPoint));
        else
            AddPointText = MakeCostString(String(m_AddPoint));

        switch (m_PointType)
        {
            case 0:    // Normal
                TextColor.R = 255;
                TextColor.G = 255;
                TextColor.B = 0;
                break;
            case 1:    // Bonus
                TextColor.R = 0;
                TextColor.G = 255;
                TextColor.B = 255;
                break;
            case 2:    // Decrease
            case 3:    // Decrease (on rpg club when buy smthn)
                TextColor.R = 255;
                TextColor.G = 0;
                TextColor.B = 0;
                break;
        }
        
        txt_ExpBarPCChangeValue.SetText(AddPointText );
        txt_ExpBarPCChangeValue.SetTextColor(TextColor);
        txt_ExpBarPCChangeValue.SetAnchor( "ExpBarWnd.txtExpBarPCValue", "BottomRight", "BottomRight", 0, 0);
        txt_ExpBarPCChangeValue.ClearAnchor();
        txt_ExpBarPCChangeValue.Move(0, -38, 2.f);
        txt_ExpBarPCChangeValue.SetAlpha(255);
        txt_ExpBarPCChangeValue.SetAlpha(0, 1.8f);
    }
}

Может это как-то поможет разобраться, тем кто понимает в этом, я просто не шарю...
Буду рад любой помощи!
 

Люди добрые, кто подскажет за PC Cafe Points?
В чем вопрос и почему спрашиваю в теме интерфейса.

В этом интерфейсе у меня PC Cafe Points может выглядеть так
(Рисунок 1) -
Посмотреть вложение 89467
Может выглядеть вот так (Рисунок 2) -
Посмотреть вложение 89468

А может выглядеть вот так (Рисунок 3) -
Посмотреть вложение 89469

На рисунке 3, количество PC Cafe Points просто не влезает в отведенное для них место (максимально можно накопить 200 000 очков). Но проблема не в самих очках PC Cafe, как таковых (200 000 отлично там помещаются), проблема в "таймере"(?) в квадратных скобках (вот эти [06:36] на рисунке 2), который периодически появляется вместе с очками PC Cafe. А всё вместе с этим "таймером" уже не помещается.

200 000 очков (без "таймера" в конце)
Посмотреть вложение 89470

И собстевнно вопросы. Что это за "таймер" в конце, какую информацию он несет игроку? Он может появиться/измениться/пропасть (прям рулетка) когда получаю новые очки (за прибывание в игре) или трачу уже имеющиеся. Цифры там постоянно разные, отсчет у "таймера" не ведется (вот как было [06:30], так и будет долго висеть эта цифра).
И можно ли как-то от этого "таймера" избавиться, не сломав счетчик PC Cafe Points?

В ExpBarWnd.uc нашел такой блок
Код:
function HandlePCCafePointInfo( String a_Param )
{
    local int Show;
    local Color TextColor;
    local String AddPointText;
    local String FullPointText;        //CT26P4_0323
    local int nDailyHour;
    local int nDailyMin;
    local int PCCafeTotalPoint;
    local int m_AddPoint;
    local int m_PointType;
    local int m_DailyPoint;  
   
    ParseInt( a_Param, "Show", Show );
    if (Show == 0) return;
   
    m_AddPoint = 0;
   
    ParseInt( a_Param, "TotalPoint", PCCafeTotalPoint );
    ParseInt( a_Param, "AddPoint", m_AddPoint );
    ParseInt( a_Param, "PointType", m_PointType );
    ParseInt( a_Param, "DailyPoint", m_DailyPoint);        //CT26P4_0323
   
    FullPointText = MakeCostString(String(PCCafeTotalPoint));

    //CT26P4_0323
    if (m_DailyPoint > 0)    // idk??
    {
        nDailyMin = m_DailyPoint / 20;
        nDailyHour = nDailyMin / 60;
        nDailyMin = nDailyMin - nDailyHour * 60;
        FullPointText = FullPointText $ " [" $ GetFormattedTimeStrMMHH(nDailyHour, nDailyMin) $ "]";
    }
   
    txt_ExpBarPCValue.SetText(FullPointText);

    if( 0 != m_AddPoint)
    {
        txt_ExpBarPCChangeValue.SetAlpha(0);
       
        if( 0 < m_AddPoint )
            AddPointText = "+" $ MakeCostString(String(m_AddPoint));
        else
            AddPointText = MakeCostString(String(m_AddPoint));

        switch (m_PointType)
        {
            case 0:    // Normal
                TextColor.R = 255;
                TextColor.G = 255;
                TextColor.B = 0;
                break;
            case 1:    // Bonus
                TextColor.R = 0;
                TextColor.G = 255;
                TextColor.B = 255;
                break;
            case 2:    // Decrease
            case 3:    // Decrease (on rpg club when buy smthn)
                TextColor.R = 255;
                TextColor.G = 0;
                TextColor.B = 0;
                break;
        }
       
        txt_ExpBarPCChangeValue.SetText(AddPointText );
        txt_ExpBarPCChangeValue.SetTextColor(TextColor);
        txt_ExpBarPCChangeValue.SetAnchor( "ExpBarWnd.txtExpBarPCValue", "BottomRight", "BottomRight", 0, 0);
        txt_ExpBarPCChangeValue.ClearAnchor();
        txt_ExpBarPCChangeValue.Move(0, -38, 2.f);
        txt_ExpBarPCChangeValue.SetAlpha(255);
        txt_ExpBarPCChangeValue.SetAlpha(0, 1.8f);
    }
}

Может это как-то поможет разобраться, тем кто понимает в этом, я просто не шарю...
Буду рад любой помощи!
когда вы определяете привязку (SetAnchor), а затем очищаете ее (ClearAnchor), что удаляет ссылку на позиционирование и делает текст плавающим на основе абсолютных координат окна, возможно, когда кадр перерисовывается (например, при получении новых точек), текст теряет ссылку и иногда кажется смещенным. Попробуйте удалить ClearAnchor(), так как вскоре после этого может произойти отмена SetAnchor().

где код:
txt_ExpBarPCChangeValue.SetAnchor( "ExpBarWnd.txtExpBarPCValue", "BottomRight", "BottomRight", 0, 0);
txt_ExpBarPCChangeValue.ClearAnchor();
txt_ExpBarPCChangeValue.Move(0, -38, 2.f);

заменить на:
txt_ExpBarPCChangeValue.SetAnchor("ExpBarWnd.txtExpBarPCValue", "BottomRight", "BottomRight", 0, -38);
txt_ExpBarPCChangeValue.Move(0, 0, 2.f);

Если по какой-то причине оно не выровнено, попробуйте внести изменения в:

txt_ExpBarPCChangeValue.SetAnchor("ExpBarWnd.txtExpBarPCValue", "BottomRight", "BottomRight", 0, -35);

txt_ExpBarPCChangeValue.SetAnchor("ExpBarWnd.txtExpBarPCValue", "BottomRight", "BottomRight", 0, -40);

Больше этим интерфейсом не пользуюсь, внес несколько исправлений, которые есть на этом форуме, Надеюсь, я помог.
 
  • Мне нравится
Реакции: kick
заменить на:
txt_ExpBarPCChangeValue.SetAnchor("ExpBarWnd.txtExpBarPCValue", "BottomRight", "BottomRight", 0, -38);
txt_ExpBarPCChangeValue.Move(0, 0, 2.f);

Если по какой-то причине оно не выровнено, попробуйте внести изменения в:

txt_ExpBarPCChangeValue.SetAnchor("ExpBarWnd.txtExpBarPCValue", "BottomRight", "BottomRight", 0, -35);

txt_ExpBarPCChangeValue.SetAnchor("ExpBarWnd.txtExpBarPCValue", "BottomRight", "BottomRight", 0, -40);

Больше этим интерфейсом не пользуюсь, внес несколько исправлений, которые есть на этом форуме, Надеюсь, я помог.

Спасибо за попытку помочь, но нет. Попробовал все три варианта -38, -35, -40, удалял txt_ExpBarPCChangeValue.ClearAnchor(); (пересобирал, естественно, Interface.u и заменял им старый, в папке System).

Все осталось как раньше - при входе в игру у цифры PC Cafe Points, в конце, есть этот "таймер" и все "сдвинуто". Несколько раз провожу манипуляции с очками PC Cafe Points (трачу или добавляю, неважно) и иногда этот "таймер" в конце пропадает, в этом случае очки PC Cafe Points отображаются корректно. Но стоит опять потратить или добавить себе очков, как "таймер" опять "приписывается сзади" и все опять сдвинуто.

Если, например, через XDAT Editor, у txtExpBarPCValue изменить шрифт с hs8 на hs7, то очки PC Cafe Points "влезают" вместе с этим "таймером", но будет ооочень мелко.
1761745241025.webp
Или, если через XDAT Editor, у txtExpBarPCValue изменить size_absolute_width с 70, на 85, все влезает, только наползает уже на иконку "PC Cafe" (это когда "таймер" есть в конце, если/когда пропадает, то все норм).
1761745847275.webp

Убрать бы появление этого "таймера" в конце, но я не понимаю что это/зачем оно и как его убрать o_O
 
Спасибо за попытку помочь, но нет. Попробовал все три варианта -38, -35, -40, удалял txt_ExpBarPCChangeValue.ClearAnchor(); (пересобирал, естественно, Interface.u и заменял им старый, в папке System).

Все осталось как раньше - при входе в игру у цифры PC Cafe Points, в конце, есть этот "таймер" и все "сдвинуто". Несколько раз провожу манипуляции с очками PC Cafe Points (трачу или добавляю, неважно) и иногда этот "таймер" в конце пропадает, в этом случае очки PC Cafe Points отображаются корректно. Но стоит опять потратить или добавить себе очков, как "таймер" опять "приписывается сзади" и все опять сдвинуто.

Если, например, через XDAT Editor, у txtExpBarPCValue изменить шрифт с hs8 на hs7, то очки PC Cafe Points "влезают" вместе с этим "таймером", но будет ооочень мелко.
Посмотреть вложение 89472
Или, если через XDAT Editor, у txtExpBarPCValue изменить size_absolute_width с 70, на 85, все влезает, только наползает уже на иконку "PC Cafe" (это когда "таймер" есть в конце, если/когда пропадает, то все норм).
Посмотреть вложение 89473

Убрать бы появление этого "таймера" в конце, но я не понимаю что это/зачем оно и как его убрать o_O
ну а ширину самого поля на котором иконка и текст сделать чуть больше не пробовал что бы не залезало?

спешу предположить что вот эту строку в ExpBarWnd.uc нужно закоментировать
C-подобный:
        FullPointText = FullPointText $ " [" $ GetFormattedTimeStrMMHH(nDailyHour, nDailyMin) $ "]";
 
Последнее редактирование:
спешу предположить что вот эту строку в ExpBarWnd.uc нужно закоментировать
C-подобный:
        FullPointText = FullPointText $ " [" $ GetFormattedTimeStrMMHH(nDailyHour, nDailyMin) $ "]";

Гениально!
Больше нет никаких "приписок сзади", все ровно как надо, проверил. Аллилуйя!
Правда так и не понял смысла этой приблуды ("таймера" в конце), ну да и хрен с ним.

Большое спасибо за помощь! (y)
 
  • Мне нравится
Реакции: Rolo
просто надо узнать что за DailyPoint шлется с сервера, на птс такого не встречал
Код:
    ParseInt( a_Param, "DailyPoint", m_DailyPoint);        //CT26P4_0323
  
    FullPointText = MakeCostString(String(PCCafeTotalPoint));

    //CT26P4_0323
    if (m_DailyPoint > 0)    // idk??
    {
        nDailyMin = m_DailyPoint / 20;
        nDailyHour = nDailyMin / 60;
        nDailyMin = nDailyMin - nDailyHour * 60;
        FullPointText = FullPointText $ " [" $ GetFormattedTimeStrMMHH(nDailyHour, nDailyMin) $ "]";
    }
 
просто надо узнать что за DailyPoint шлется с сервера, на птс такого не встречал

Ну это выше моих познаний (в этом всем).

Нашел у себя в конфигах - "Кол-во начисляемых PC очков при входе в игру 1 раз в сутки".

А еще, на каком-то другом сервере, помню уже плохо, было (кроме обычных PC очков) что-то типа начисления бонусных PC очков в какой-то заданный промежуток времени или типа того...

Может "таймер" в конце, в идеале, должен был показывать время до следующего начисления бонусных PC очков? Не знаю, просто гадаю на гуще. Ну и, скорей всего, мой кривой сервер неправильно отправляет запрос и "таймер" работает не так или не работает вовсе.

Просто в оригинальном интерфейсе HF (хотя кто им сейчас пользуется) неприлично огромное окошко для PC points. Там в этот "таймер" можно еще дни, недели, месяцы и годы запихать (и все поместится).

1761845989433.webp

А в нашем случае места не так много, так что нечего ему там болтаться и глаза мазолить :) (y)
 
Тоже попалась эта лабуда (что-то связанное с Рек-бонусами, сам толком пока не понял что это).

1761887329341.webp

Поковырял Interface.xdat через XDAT Editor. Не самое изящное решение, наверное, но вдруг кому-то пригодится.

Идем в Interface.xdat , закладка fonts и добавляем новый шрифт


Далее закладка windows , ищем SideBarWnd -> SideBarExpandWnd -> SideBarRecBonusWnd и находим там txtSecondText

В txtSecondText , в строке size_absolute_width меняем 40 на 42 , а еще в строке fontName меняем hs8stroke на hs7stroke.

Сохраняем Interface.xdat и запускаем игру. Стало мелковато, но зато можно понять что там написано "Истекло".

1761892006369.webp
 
Aeros, я на вин7 даже не пробовал запускать, надо будет виртуалку накатить, глянуть. )
Но! Главное интерфейс смог запустить под Win7, правда там из плюшек Rolo, только Ctrl+C работает, зато в самом интерфейсе все галочки меняются, все сохраняется как надо и ничего больше клиент не выбивает в крит.
Путем установки старой версии моих приблуд, или новьіе дллки тоже запустились? Если можно, тут поподробней, возможно, ускорит решение проблемьі с нескольких лет до нескольких лет -10 минут. :unsure:
 
а можно узнать куда делать хуки чтоб изменить настройки режима окна? =)
 
Aeros, я на вин7 даже не пробовал запускать, надо будет виртуалку накатить, глянуть. )

Путем установки старой версии моих приблуд, или новьіе дллки тоже запустились? Если можно, тут поподробней, возможно, ускорит решение проблемьі с нескольких лет до нескольких лет -10 минут. :unsure:

Приветствую! Боюсь не смогу дать много полезной информации, не разбираюсь в этом, но попробую.

Очень хотелось запустить "peepoClown 00.7 + Rolo Ext" интерфейс на 286 протоколе под Windows 7.
Когда использовал интерфейс "из коробки", то получал (на начальной стадии открытия окна клиента, еще до появления какого-либо изображения) крит -
PosCode : LS8(268) 0:0:0 8/0 [1074]
General protection fault!
History: UGameEngine::Tick <- UpdateWorld <- MainLoop

Проверил на Win10. Тот же клиент (268 протокол), тот же интерфейс (из коробки) и все работает без проблем (настройки меняются, изменения интерфейса сохраняются, критов - нет).

Стал думать, писать сюда и тыкать куда попало. Пришлось пожертвовать функциями "Ctrl+C-Ctrl+V"; "FPS"; "Логин менеджер" и "Окно без рамки", что грустно, но зато смог запустить остальной интерфейс под Win7 без критов.

Самый простой (на мой непрофессиональный взгляд) способ запустить под Win7 оказался такой:
копируем в клиент все файлы "peepoClown 00.7 + Rolo Ext" интерфейса, далее качаем
архив под названием "1.1.0.0 ctrl+c / ctrl+v", берем из него (папка System) файлы "RoloScript.u" и "RoloTopExt.dll", закидываем их в папку System нашего клиента (перезаписываем). Все - клиент с установленным интерфейсом запускается под Win7.

Плюсы: легко сделать, не надо лезть в "классы" и компилировать, не критует при запуске клиента или при попытке изменить на "окно без рамки".
Минусы: как уже писал выше - весь набор плюшек от Rolo (включая "Ctrl+C-Ctrl+V") отсутствует (логин менеджер присутствует только визуально, естественно).

П.С. Пытался подсунуть файлы "RoloScript.u" и "RoloTopExt.dll" из других архивов. Начиная с "1.3.0.0 change window style" , на Win7, появляется крит при запуске клиента. Из чего делаю вывод, что засада кроется в RoloTopExt.dll, когда в нем появляется функционал "окно без рамки". Но это мнение любителя, на истину не претендую.
 
  • Мне нравится
Реакции: Rolo
Hello all! a question. Is it possible to do something like this on this interface? Or does it already support it?
image.webp
 
Aeros, ну, крч качнул я какую win7.ova на испанском, правда, но да хрен с ним, поставил виртуалку, пошел дебажить дллку, но не дошел, ибо я хрен знает как на єту шляпу поставить тот сраньій директ х, кроме того что я мало что понимаю, куда тьікаю, я еще и качаю приблизительно так же. :loltt0:

Крч, задача получила тредпул с повторньім напоминанием года через 3, когда я познаю испанский и смогу запустить клиент без екстов своих же. )
Статус вьіполнения: ниасилил.
 
Aeros, ну, крч качнул я какую win7.ova на испанском, правда, но да хрен с ним, поставил виртуалку, пошел дебажить дллку, но не дошел, ибо я хрен знает как на єту шляпу поставить тот сраньій директ х, кроме того что я мало что понимаю, куда тьікаю, я еще и качаю приблизительно так же. :loltt0:

Крч, задача получила тредпул с повторньім напоминанием года через 3, когда я познаю испанский и смогу запустить клиент без екстов своих же. )
Статус вьіполнения: ниасилил.

Понял, принял. Да я, честно говоря, и не настаивал, благо с ранними версиями файлов (до появления окна без рамки) пользоваться интерфейсом на Win7 можно (хоть и с нюансами).

Rolo , но может чем-то могу помочь? Например поискать в сети нормальную семерку с уже установленным директхом или типа того?
И получить значок "почетный некромант на районе"
Если это конечно имеет смысл.

Просто если "ну его на хрен" вообще (что понятно), то тут уже без вариантов. Если проблема в поиске винды с дрхсом, потому что лень (что тоже понятно) :) , то может я смогу как-то пригодиться.
 
  • Мне нравится
Реакции: Rolo
Понял, принял. Да я, честно говоря, и не настаивал, благо с ранними версиями файлов (до появления окна без рамки) пользоваться интерфейсом на Win7 можно (хоть и с нюансами).

Rolo , но может чем-то могу помочь? Например поискать в сети нормальную семерку с уже установленным директхом или типа того?
И получить значок "почетный некромант на районе"
Если это конечно имеет смысл.

Просто если "ну его на хрен" вообще (что понятно), то тут уже без вариантов. Если проблема в поиске винды с дрхсом, потому что лень (что тоже понятно) :) , то может я смогу как-то пригодиться.
Та оставьте вы эту семёрку в покое уже вместе с интерлюдом.
 
Aeros, мне вроде дали семерку (даже две), правда, я еще не пробовал запустить даже, работьі много, а времени - нет. ) Но если под руку попадется 7ка сдиректами, си вижуалами и что там еще под л2 надо - то буду благодарен за ссьілки. ) А если еще и сразу *.ova, а не *.iso - то аще шикарно. )
 
Назад
Сверху Снизу