Заказать Сервер Заказать Плагин Контакты Поиск

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

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

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

   if (!sFlags[0])
      return 0;

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

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

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