Skip to forum content

You are not logged in. Please login or register.


forums.pvpgn.pro → [RU] The Source Code → насчет иконки

Pages 1

You must login or register to post a reply

RSS topic feed

Posts: 2

1 (edited by launcher 24.06.2021 20:40)

Topic: насчет иконки

добречка всем
знаю что есть команда /set <name> Record\W3XP\userselected_icon<code>
1. как можно реализовать и обойти команду /set. чтобы напрямую через /icon name <code> устанавливать
имеется айкаповские иконки расположенные в icons War3.bni
2. запись производится в БД Record\W3XP\userselected_ico, возможно ли сделать чтобы записывался в BNET (как?)
3.когда прописываю в Record\W3XP\userselected_icon иконку то не показывает (выходит капюшон). как исправить тоже?

snprintf(query,sizeof(query),"select score from BNET where acct_username='%s'", account_get_name(account));
            result = sql->query_res(query);
            if (result == NULL || sql->num_rows(result) != 1)
            {
            if (result) sql->free_result(result);
            return 0;
            }
            Row = sql->fetch_row(result);
            int score = std::atoi( Row[0] );
            sql->free_result(result);

 


            char* d_marker;
if (score >= 0)
    d_marker = "UPCI";
if (score >= 399)
    d_marker = "UPCI";
if (score >= 400)
    d_marker = "MDCI";
if (score >= 899)
    d_marker = "MDCI";
if (score >= 900)
    d_marker = "SDCI";
if (score >= 1999)
    d_marker = "SDCI";
if (score >= 2000)
    d_marker = "PDCI";
if (score >= 2999)
    d_marker = "PDCI";
if (score >= 3000)
    d_marker = "MCCI";
if (score >= 3999)
    d_marker = "MCCI";
if (score >= 4000)
    d_marker = "SCCI";
if (score >= 4999)
    d_marker = "SCCI";
if (score >= 5000)
    d_marker = "PCCI";
if (score >= 5999)
    d_marker = "PCCI";
if (score >= 6000)
    d_marker = "MBCI";
if (score >= 6999)
    d_marker = "MBCI";
if (score >= 7000)
    d_marker = "SBCI";
if (score >= 7999)
    d_marker = "SBCI";
if (score >= 8000)
    d_marker = "PBCI";
if (score >= 8999)
    d_marker = "PBCI";
if (score >= 9000)
    d_marker = "MACI";
if (score >= 10499)
    d_marker = "MACI";
if (score >= 10500)
    d_marker = "SACI";
if (score >= 11999)
    d_marker = "SACI";
if (score >= 12000)
    d_marker = "PACI";
if (score >= 14999)
    d_marker = "PACI";
if (score >= 15000)
    d_marker = "SUCI";
if (score >= 20000)
    d_marker = "SUCI";
if (acctlevel == 0) {
        if(clantag)
          std::sprintf(tempplayerinfo, "%s %s 0 %s", revtag, d_marker, clantag_str);
        else
         std::sprintf(tempplayerinfo, "%s %s",d_marker, revtag);
        eventlog(eventlog_level_info,__FUNCTION__,"[%d] %s",conn_get_socket(c), revtag);
    } 
    else
    {
        usericon = account_get_user_icon(account,clienttag);
        if (!usericon)
        {
            if(clantag)
                std::sprintf(tempplayerinfo, "%s SDCI %u %s", revtag, acctlevel, clantag_str);
            else
                std::sprintf(tempplayerinfo, "%s SDCI", revtag);
                eventlog(eventlog_level_info,__FUNCTION__,"[%d] %s using generated icon [%1u%c3W]",conn_get_socket(c), revtag, raceiconnumber, raceicon);
        }
        else
        {
            if(clantag)
                std::sprintf(tempplayerinfo, "%s %s  %s",revtag, usericon, clantag_str);
            else
                std::sprintf(tempplayerinfo, "%s %s",revtag, usericon);
            eventlog(eventlog_level_info,__FUNCTION__,"[%d] %s using user-selected icon [%s]",conn_get_socket(c),revtag,usericon);
        }
    }

может в channel нужно править чтобы автоматом ранги показывали?

у меня 1,99

2 (edited by Gh0ster 15.08.2021 14:03)

Re: насчет иконки

Добавить флаги ниже mf blizz и mf bnet флаги по типу icdm icds и т.д в протоколе т.е bnet_protocol.h типа:
#define COMP 0x00000100 // клава
#define RANKDM 0x0000800  // D-
#define RANKD 0x00001000 // D
#define RANKDP 0x00002000 // D+
#define RANKCM 0x00003000 // C-
#define RANKC 0x00004000 // C
#define RANKCP 0x00005000  // C+
#define RANKBM 0x00006000 // B-
#define RANKB 0x00007000 // B
#define RANKBP 0x00008000 // B+
#define RANKAM 0x00009000 // А-
#define RANKA 0x00010000 // А
#define RANKAP 0x00011000 // А+
#define RANKU 0x00012000 // кольца
и на канале channel.cpp
Поставить условия + флаг который указали выше.
Потом в паке иконок назначить по байтам то что указали в протоколе

Posts: 2

Pages 1

You must login or register to post a reply

Who now at forum

Currently view post: 1 guest, 0 registered users

forums.pvpgn.pro → [RU] The Source Code → насчет иконки