Авто-определение клана в игре для WarMod

Danyas

Участник
Сообщения
2,173
Реакции
1,072
Понятия не имею как реализовать данную вещь, но хотелось бы у себя реализовать автоматическую пропись в переменные ct и t (WarMod).
Как я себе это представляю - при join_team проверять кол-во игроков, если больше 9 - проверять наличие общих символов в нике у всех игроков
p.s. Пример массива игроков:
1) teamW - ezp
2) teamW - x11
3) teamA - udp
4) teamW - tcc
5) teamA - wp
6) teamA - tcp
7) teamA - gg
8) teamW - etc
9) teamA - ez

Дальше, при совпадении более чем из N-символов в никах - присваивать значение переменной t и ct

как-то-так.
Если кто-то с подобным сталкивался прошу запилить ссылку на это детище (или похожее)
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
клан - это клантег? если нет, то мб обязать ставить клан в [ ]. ну а далее создаем два массива, в первый (array) вписываем все кланы, во второй (trie) количество игроков с этим кланом, соответственно, играемся со вторым
 

artyrka94

Участник
Сообщения
181
Реакции
38
зачем при join_team? я бы сделал при старте матча берешь клантег первого т игрока сравниваешь с клантегами других т игроков если у всех одинаковый выполняешь servercommand("t %s", clantag); ну и аналогично с ct
 
Последнее редактирование:

Danyas

Участник
Сообщения
2,173
Реакции
1,072
зачем при join_team? я бы сделал при старте матча берешь клантег первого т игрока сравниваешь с клантегами других т игроков если у всех одинаковый выполняешь servercommand("t %s", clantag); ну и аналогично с ct
Ну дак а как их стровнить то?)
 

artyrka94

Участник
Сообщения
181
Реакции
38
@Danyas, ты же вроде шарил в павне)

PHP:
native CS_GetClientClanTag(client, String:buffer[], size);
forward OnLiveOn3();

public OnLiveOn3()
{
    decl String:ctag[16], String:ttag[16], String:buf[16];
    new ct=0, t=0;
    for(new i=1; i<=MaxClients; i++)
    if(IsClientInGame(i))
    {
        switch(GetClientTeam(i))
        {
            case 2:
            {
                if(ttag[0])
                {
                    CS_GetClientClanTag(i,buf,sizeof(buf));
                    if(strcmp(ttag,buf) == 0)
                        t++;
                }else
                {
                    CS_GetClientClanTag(i,ttag,sizeof(ttag));
                }
            }
            case 3:
            {
                if(ctag[0])
                {
                    CS_GetClientClanTag(i,buf,sizeof(buf));
                    if(strcmp(ctag,buf) == 0)
                        ct++;
                }else
                {
                    CS_GetClientClanTag(i,ctag,sizeof(ctag));
                }
            }
        }
    }
    if(t > 3) ServerCommand("t %s", ttag);
    if(ct > 3) ServerCommand("ct %s", ctag);
}
 

Danyas

Участник
Сообщения
2,173
Реакции
1,072
@Danyas, ты же вроде шарил в павне)

PHP:
native CS_GetClientClanTag(client, String:buffer[], size);
forward OnLiveOn3();

public OnLiveOn3()
{
    decl String:ctag[16], String:ttag[16], String:buf[16];
    new ct=0, t=0;
    for(new i=1; i<=MaxClients; i++)
    if(IsClientInGame(i))
    {
        switch(GetClientTeam(i))
        {
            case 2:
            {
                if(ttag[0])
                {
                    CS_GetClientClanTag(i,buf,sizeof(buf));
                    if(strcmp(ttag,buf) == 0)
                        t++;
                }else
                {
                    CS_GetClientClanTag(i,ttag,sizeof(ttag));
                }
            }
            case 3:
            {
                if(ctag[0])
                {
                    CS_GetClientClanTag(i,buf,sizeof(buf));
                    if(strcmp(ctag,buf) == 0)
                        ct++;
                }else
                {
                    CS_GetClientClanTag(i,ctag,sizeof(ctag));
                }
            }
        }
    }
    if(t > 3) ServerCommand("t %s", ttag);
    if(ct > 3) ServerCommand("ct %s", ctag);
}
Спасибо, в v34 нету клантега, имеется ввиду сам принцип взятия.
При виде некоторых вещей в павне я впадаю в панику и ничего не могу сделать, для примера это любые действия с инклюдов adt_*, для меня это тёмный лес)
а это в принципе банальная конструкция, но всё равно как-то туповато доходило, но дошло, по этому спасибо вдвойне)
 

artyrka94

Участник
Сообщения
181
Реакции
38
@Danyas, если из ника хочешь достать, можно попробовать через SplitString
 

Reg1oxeN

Участник
Сообщения
399
Реакции
314
это было только начало в далеком прошлом и я писал как мог.
как бы то ни было удачи в оптимизации )
Dropbox - get_clantag.txt
зы. буду рад получить обратно код в новом виде )
 

Danyas

Участник
Сообщения
2,173
Реакции
1,072

warlock

Участник
Сообщения
202
Реакции
8
CS:GO версию? Надоело, что вармод не умеет адекватно подхватывать клантеги, и потом демки нужные хрен найдешь..
 

Danyas

Участник
Сообщения
2,173
Реакции
1,072
CSS v34.
Я не имею ввиду способ взятия именно клантега (группы стима, там проще), ищу способ поиска клантега, когда он в роли пре(су)фикса в самом нике.
Reg1oxeN выложил то-то похожее, а возможно и оно, но я еще не добрался до этого...
 

SourceSamil

Мошенник
Сообщения
121
Реакции
28
Так, получаешь имя игрока, потом делишь по пробелу, ] \ / # ; $ и другим похожим символам, все, что до - клан тэг, потом сравниваешь в strcmp одинаковы ли они, если да, пилишь их в массив
 
Сверху Снизу