• avatar prool
  • 0
Самая эффективная борьба с ботами — закрыть игру нафиг
Самая эффективная борьба с ботами это почасовая оплата игры, скажем час игры=1 руб. Тогда боты становятся невыгодными.
  • avatar bodrich
  • 0
Если не прокатит, то попробуй вместо strlen, использовать функцию strwidth().
Либо ты можешь вообще убрать этот автоматический перенос слов
UPD. Возможно, у string есть функция length() или len() можно ее попробовать
  • avatar bodrich
  • 0
А ты попробуй! Есть вариант, что такое прокатит.
Ты уверен? Функция Пруля на С, а lib/sys/obj/user.c написана на lpc.
  • avatar bodrich
  • 0
lib/sys/obj/user.c
В какой файл добавлять int utf8_strlen(const string& str)?
  • avatar bodrich
  • 0
Не могу. Добавь прулевскую функцию int utf8_strlen(const string& str)
и в функции wrap_message измени все strlen на utf8_strlen
commit можешь сделать? Я не программист и ничего сам изменить не могу.
Все сообщения на русском в два раза короче, например если сказать что-нибудь и т.д.
  • avatar bodrich
  • 1
Файл user.c, функция void wrap_message(string str, varargs int chat_flag)
Тебе нужно здесь изменить strlen и немного сам алгоритм работы
  • avatar bodrich
  • 0
Только у комнат такой баг? Или, например, если в сказать что-нибудь длинное в чат на русском — тоже так будет съезжать?
  • avatar prool
  • 0
Это реализация функции strlen, которая правильно считает длину строки с символами UTF-8. Как говорит молодежь «я просто оставлю это здесь». А то потеряю это
Что это?
  • avatar prool
  • 0
int utf8_strlen(const string& str)
{
int c,i,ix,q;
for (q=0, i=0, ix=str.length(); i < ix; i++, q++)
{
c = (unsigned char) str[i];
if (c>=0 && c<=127) i+=0;
else if ((c & 0xE0) == 0xC0) i+=1;
else if ((c & 0xF0) == 0xE0) i+=2;
else if ((c & 0xF8) == 0xF0) i+=3;
//else if (($c & 0xFC) == 0xF8) i+=4; // 111110bb //byte 5, unnecessary in 4 byte UTF-8
//else if (($c & 0xFE) == 0xFC) i+=5; // 1111110b //byte 6, unnecessary in 4 byte UTF-8
else return 0;//invalid utf8
}
return q;
}
В мадлете то же самое
gurbalib-rus
Вроде не было.
Лень копаться там в настройках, чтобы другой мад указать. Клиент для текстовой игры занимающий 600Мб места, как-то слишком мажористо для меня.
  • avatar tangar
  • 0
мож проверочный код в папку спам ящика упал?
  • avatar prool
  • 0
На кортинке видна Тортилла. Пинай авторов Тортиллы, они есть в дискорд-чатике