Pascal
Новичок
Автор: Nexius
Взято из скрипта от Nexius
Для начала ко всем define
Взято из скрипта от Nexius
Для начала ко всем define
PHP:
#define TOLOWER_IN_ANY_CASE
#define TOLOWER_WITHOUT_CAP_LETTERS
#define MAX_UPPERCASE_PERSENT 45.0
В public OnPlayerText
PHP:
#if !defined TOLOWER_IN_ANY_CASE
if(IsTextUppercase(text))
{
#if defined TOLOWER_WITHOUT_CAP_LETTERS
UpperToLowerWithoutCapLetters(text);
#else
UpperToLower(text);
#endif
}
#elseif defined TOLOWER_WITHOUT_CAP_LETTERS
UpperToLowerWithoutCapLetters(text);
#else
UpperToLower(text);
#endif
После в OnPlayerCommandText
PHP:
#if !defined TOLOWER_IN_ANY_CASE
if(IsTextUppercase(cmdtext))
{
#if defined TOLOWER_WITHOUT_CAP_LETTERS
UpperToLowerWithoutCapLetters(cmdtext);
#else
UpperToLower(cmdtext);
#endif
}
#elseif defined TOLOWER_WITHOUT_CAP_LETTERS
UpperToLowerWithoutCapLetters(cmdtext);
#else
UpperToLower(cmdtext);
#endif
Ко всем stock
PHP:
stock IsTextUppercase(const text[])
{
new len = strlen(text), count;
for(new i = len - 1; i != -1; --i)
{
if('A' <= text[i] <= 'Z' || 'А' <= text[i] <= 'Я' || text[i] == 'Ё') count++;
}
if((float(count) / float(len)) * 100.0 > MAX_UPPERCASE_PERSENT) return 1;
return 0;
}
stock UpperToLowerWithoutCapLetters(text[])
{
for(new i, bool:cap = true, len = strlen(text); i < len; i++)
{
switch(text[i])
{
case '.', '!', '?', ';': cap = true;
case 'a'..'z', 'а'..'я', 'ё': cap = false;
case 'A'..'Z', 'А'..'Я':
{
if(cap) cap = false;
else text[i] += 32;
}
case 'Ё':
{
if(cap) cap = false;
else text[i] = 'ё';
}
}
}
return 1;
}
stock UpperToLower(text[])
{
for(new i = strlen(text) - 1; i != -1; --i)
{
switch(text[i])
{
case 'A'..'Z', 'А'..'Я': text[i] += 32;
case 'Ё': text[i] = 'ё';
}
}
return 1;
}
