Контакты Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Уроки/Статьи/Функции/Задачи » Замена функции ReadFlagString
Замена функции ReadFlagString
_wS_ Дата: Понедельник, 17.04.2017, 18:43:46 | Сообщение # 1
Стандартная функция ReadFlagString не совсем продумана.
Если она встречает любой символ (даже пробел), который не является флагом, то просто останавливается.

Код
stock ReadFlagString_(const String:sFlags[], &FlagsCount = 0)
{
    FlagsCount = 0;

    if (!sFlags[0]) {
        return 0;
    }

    new AdminFlag:AdmFlag;
    new BitFlag, Bits, i = strlen(sFlags);

    while (i--) {
        if (FindFlagByChar(sFlags[i], AdmFlag) && (BitFlag = FlagToBit(AdmFlag)) && !(BitFlag & Bits)) {
            Bits |= BitFlag;
            FlagsCount++;
        }
    }

    return Bits;
}
 
_wS_ Дата: Понедельник, 17.04.2017, 19:01:31 | Сообщение # 2
Код
new FlagsCount;
new Bits = ReadFlagString_(" dd@' z_ f ", FlagsCount);
PrintToServer("FlagsCount: %d, Bits: %d", FlagsCount, Bits); // FlagsCount: 3, Bits: 16424 (флаги "dzf" норм прочитаны)
 
Форум » SourceMod >> CS:Source >> CSGO » Уроки/Статьи/Функции/Задачи » Замена функции ReadFlagString
  • Страница 1 из 1
  • 1
Поиск: