|
Предыстория. Была поставлена задача: создать простую систему текстов которая бы не являлась набором функций была наглядно понятна имела возможность легкого перевода на любой язык легко определялся смысл текста внутри кода высокая скорость работы |
|
Нечитаемо? |
|
Ты уверен что существует, ещё один путь с такими задачами и такой, что лучше твоего? Мы тоже, вот тебе альтернативы на довольствие)
|
|
pawn Code:
|
|
это не набор функций
незнаю, что может быть нагляднее ini файла анологично |
|
И кстати по поводу переноса строк, а если он мне нужен в тексте, все встроенные средства чтения файлов тут же отсекаются?!
|
#define LANG_BB_N "[n]"
stock check_BB(string[])
{
new buf, len_n = strlen(LANG_BB_N);
while ( (buf = strfind(string,LANG_BB_N)) != -1 )
{
strdel(string, buf, buf+len_n);
strins(string, "\n", buf, MAX_STRING+32);
}
}
|
Я эту проблему решил очень просто, получилось что-то вроде BB кодов:
|
|
Нанимают мужика разметку на дороге рисовать. Ну в первый день проверяют работу, а он нарисовал разметки на 60км. Ну хвалят, мол лучше чем все старые бригады поработал, они вон только по 40км рисуют. Во второй день мужик нарисовал на 30км. Ну списали на усталость. В третий день мужик нарисовал только 5км дороги. Ну тут начальство не выдерживает и спрашивает: - "Ты в первый день 60км нарисовал, а во второй 30км, так почему сейчас всего 5км?" - "До ведра далеко бегать." |
|
не видит разницы между статичными и редактируемыми текстами приложения.
|
stock FixText(string[]) {
new result[256];
for(new i=0; i < 256; i++) {
switch(string[i]) {
case 'а':result[i] = 'a';
case 'А':result[i] = 'A';
case 'б':result[i] = '—';
case 'Б':result[i] = 'Ђ';
case 'в':result[i] = 'ў';
case 'В':result[i] = '‹';
case 'г':result[i] = '™';
case 'Г':result[i] = '‚';
case 'д':result[i] = 'љ';
case 'Д':result[i] = 'ѓ';
case 'е':result[i] = 'e';
case 'Е':result[i] = 'E';
case 'ё':result[i] = 'e';
case 'Ё':result[i] = 'E';
case 'ж':result[i] = '›';
case 'Ж':result[i] = '„';
case 'з':result[i] = 'џ';
case 'З':result[i] = '€';
case 'и':result[i] = 'њ';
case 'И':result[i] = '…';
case 'й':result[i] = 'њ';
case 'Й':result[i] = '…';
case 'к':result[i] = 'k';
case 'К':result[i] = 'K';
case 'л':result[i] = 'ћ';
case 'Л':result[i] = '‡';
case 'м':result[i] = 'Ї';
case 'М':result[i] = 'M';
case 'н':result[i] = '®';
case 'Н':result[i] = '*';
case 'о':result[i] = 'o';
case 'О':result[i] = 'O';
case 'п':result[i] = 'Ј';
case 'П':result[i] = 'Њ';
case 'р':result[i] = 'p';
case 'Р':result[i] = 'P';
case 'с':result[i] = 'c';
case 'С':result[i] = 'C';
case 'т':result[i] = '¦';
case 'Т':result[i] = 'Џ';
case 'у':result[i] = 'y';
case 'У':result[i] = 'Y';
case 'ф':result[i] = '';
case 'Ф':result[i] = 'Ѓ';
case 'х':result[i] = 'x';
case 'Х':result[i] = 'X';
case 'ц':result[i] = '*';
case 'Ц':result[i] = '‰';
case 'ч':result[i] = '¤';
case 'Ч':result[i] = 'Ќ';
case 'ш':result[i] = 'Ґ';
case 'Ш':result[i] = 'Ћ';
case 'щ':result[i] = 'Ў';
case 'Щ':result[i] = 'Љ';
case 'ь':result[i] = '©';
case 'Ь':result[i] = '’';
case 'ъ':result[i] = 'ђ';
case 'Ъ':result[i] = '§';
case 'ы':result[i] = 'Ё';
case 'Ы':result[i] = '‘';
case 'э':result[i] = 'Є';
case 'Э':result[i] = '“';
case 'ю':result[i] = '«';
case 'Ю':result[i] = '”';
case 'я':result[i] = '¬';
case 'Я':result[i] = '•';
default:result[i]=string[i];
}
}
return result;
}
GameTextForPlayer(i, FixText("~w~ваш клиент~n~~r~вышел из игры"), 5000, 1);
|
Sergey_Walter |