Русские буквы в консоли!
|
|
LuxurY | Дата: Вторник, 12.02.2008, 09:12 | Сообщение # 1 |
Уверенный в себе
Группа:
Продвинутые
Сообщений: 281
Награды: 1
Город: OZ
Репутация: 45
Замечания: 0%
Статус:
| Всем известно что русские символы нормально не отображаются в консоли. Когда мы пишем: Code print("а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я"); То получаем в консоли: Code р с т у ф х ╕ ц ч ш щ ъ ы ь э ю я Ё ё Є є Ї ї Ў ў ° ∙ · √ № ¤ ■ * └ ┴ ┬ ├ ─ ┼ и╞ ╟ ╚ ╔ ╩ ╦ ╠ ═ ╬ ╧ ╨ ╤ ╥ ╙ ╘ ╒ ╓ ╫ ╪ ┘ ┌ █ ▄ ▌ ▐ ▀ Есть способ это пофиксить:* :P Основная: #define FixConsole(%1) for(new rSt;rSt<strlen(%1);rSt++) if(%1[rSt]>191 && %1[rSt]<240) %1[rSt]-=64; else if(%1[rSt]>239 && %1[rSt]<256) %1[rSt]-=16 Также работает с "Ё" и "ё" #define FixConsole(%1) for(new rSt;rSt<strlen(%1);rSt++) if(%1[rSt]>191 && %1[rSt]<240) %1[rSt]-=64; else if(%1[rSt]>239 && %1[rSt]<256) %1[rSt]-=16; else if (%1[rSt] == 168 ) %1[rSt]+=72; else if (%1[rSt] == 184) %1[rSt]+=57 Русские символы разделены на 2 группы: 1) 192 - 239 (А - Я, а - п) разница 64 2) 240 - 256 (р - я) разница 16 Например: Русская "A" Вводится: 192 (Отображается: "└") Правильная: 128 (Отображается правильно: "A") 192-128=64 Русская "y" Вводится: 243 (Отображается: "є") Правильная: 227 (Отображается правильно: "y") 243-227=16 С использованием FixConsole: Code а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я Тестовое предложение: Автор: [LDT]LuxurY Источник: www.sa-mp.com Перевод: GTAscript.ru Кароче все я ))
www.gtascript.ru admin www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
|
|
|
|
KoLoS1mus | Дата: Вторник, 12.02.2008, 10:36 | Сообщение # 2 |
Новенький
Группа:
Продвинутые
Сообщений: 41
Награды: 1
Город: 63RUS
Репутация: 1
Замечания: 0%
Статус:
| У меня не пашет
|
|
|
|
LuxurY | Дата: Вторник, 12.02.2008, 14:38 | Сообщение # 3 |
Уверенный в себе
Группа:
Продвинутые
Сообщений: 281
Награды: 1
Город: OZ
Репутация: 45
Замечания: 0%
Статус:
| Quote (KoLoS1mus) У меня не пашет как ты используешь фикс?Добавлено (12.02.2008, 14:38) --------------------------------------------- хм... все ясно используем с: Code printr(message[]) { FixConsole(message); print(message); return 1; }
www.gtascript.ru admin www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
|
|
|
|
logih | Дата: Вторник, 12.02.2008, 19:20 | Сообщение # 4 |
Постоялец
Группа:
Продвинутые
Сообщений: 392
Награды: 4
Город: Алжир
Репутация: 12
Замечания: 0%
Статус:
| напишите готовый скрипт , не пойму что куда совать
|
|
|
|
LuxurY | Дата: Четверг, 14.02.2008, 19:34 | Сообщение # 5 |
Уверенный в себе
Группа:
Продвинутые
Сообщений: 281
Награды: 1
Город: OZ
Репутация: 45
Замечания: 0%
Статус:
| Quote (logih) напишите готовый скрипт , не пойму что куда совать wall wall wall wall wall wall wall в начало скрипта: #define FixConsole(%1) for(new rSt;rSt<strlen(%1);rSt++) if(%1[rSt]>191 && %1[rSt]<240) %1[rSt]-=64; else if(%1[rSt]>239 && %1[rSt]<256) %1[rSt]-=16; else if (%1[rSt] == 168 ) %1[rSt]+=72; else if (%1[rSt] == 184) %1[rSt]+=57 В конец скрипта: Code printr(message[]) { FixConsole(message); print(message); return 1; } Использование: Code printr("Это русское сообщение"); Достаточно? Или опять не понял?
www.gtascript.ru admin www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
Сообщение отредактировал LuxurY - Четверг, 14.02.2008, 19:35 |
|
|
|
LuxurY | Дата: Вторник, 04.03.2008, 22:07 | Сообщение # 6 |
Уверенный в себе
Группа:
Продвинутые
Сообщений: 281
Награды: 1
Город: OZ
Репутация: 45
Замечания: 0%
Статус:
| Quote (GoNT1k) А как можно заменить все printf, на printfr ? Выдает ошибку если все =\ нельзя. единственный вариант - сначала форматировать строку а потом отсылась ее новой функцией
www.gtascript.ru admin www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
|
|
|
|
LuxurY | Дата: Пятница, 21.03.2008, 15:56 | Сообщение # 7 |
Уверенный в себе
Группа:
Продвинутые
Сообщений: 281
Награды: 1
Город: OZ
Репутация: 45
Замечания: 0%
Статус:
| отсылка русских сообщений из консоли: Code #define defix(%1) for(new rStd;rStd<strlen(%1);rStd++) if(%1[rStd]>127 && %1[rStd]<176) %1[rStd]+=64; else if(%1[rStd]>223 && %1[rStd]<240) %1[rStd]+=16; else if (%1[rStd] == 240) %1[rStd]-=72; else if (%1[rStd] == 241) %1[rStd]-=57 Code public OnRconCommand(cmd[]) { if (!strcmp(cmd,"sayr",true,4)) { defix(cmd); new strsay[64]; format(strsay,sizeof(strsay),"* Admin: %s",cmd[5]); SendClientMessageToAll(0x33CCFFAA,strsay); return 1; } return 0; } printr с дефиксацией. (использовать в OnPlayerText) Code stock printr2(string[]) { FixConsole(string); printf("%s",string); defix(string); return 1; }
www.gtascript.ru admin www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
|
|
|
|
Hellboy209 | Дата: Пятница, 18.04.2008, 20:07 | Сообщение # 8 |
Группа:
Удаленные
| Блин LuxurY я чото не могу понять ну выложи плизз эт же быстро ну плизззззз
|
|
|
|
LuxurY | Дата: Пятница, 18.04.2008, 20:37 | Сообщение # 9 |
Уверенный в себе
Группа:
Продвинутые
Сообщений: 281
Награды: 1
Город: OZ
Репутация: 45
Замечания: 0%
Статус:
| держите скрипт. http://slil.ru/25704466 встроена посылка русских сообщений из консоли сервера в чат и возможность чтения сообщений в чате.
www.gtascript.ru admin www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
|
|
|
|
Hellboy209 | Дата: Пятница, 18.04.2008, 21:23 | Сообщение # 10 |
Группа:
Удаленные
| СПС Добавлено (18.04.2008, 21:23) --------------------------------------------- Слушай а он точно нормальный не выдавл тебе предупреждений когда ты компилировал его?
|
|
|
|
LuxurY | Дата: Пятница, 18.04.2008, 21:24 | Сообщение # 11 |
Уверенный в себе
Группа:
Продвинутые
Сообщений: 281
Награды: 1
Город: OZ
Репутация: 45
Замечания: 0%
Статус:
| Quote (Hellboy209) Слушай а он точно нормальный не выдавл тебе предупреждений когда ты компилировал его? точно. что проблемы есть?
www.gtascript.ru admin www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
|
|
|
|
Hellboy209 | Дата: Пятница, 18.04.2008, 21:27 | Сообщение # 12 |
Группа:
Удаленные
| Не всё норм СПС огромное но знаешьв чём недочёт он пм сообщения читать не хочет к сожалегию(((
|
|
|
|
LuxurY | Дата: Пятница, 18.04.2008, 21:28 | Сообщение # 13 |
Уверенный в себе
Группа:
Продвинутые
Сообщений: 281
Награды: 1
Город: OZ
Репутация: 45
Замечания: 0%
Статус:
| Quote (Hellboy209) Не всё норм СПС огромное но знаешьв чём недочёт он пм сообщения читать не хочет к сожалегию((( это не недочет. это просто не реализовано)
www.gtascript.ru admin www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
|
|
|
|
Hellboy209 | Дата: Пятница, 18.04.2008, 21:31 | Сообщение # 14 |
Группа:
Удаленные
| И ещё а как отправлять сообщения из консоли? Добавлено (18.04.2008, 21:31) --------------------------------------------- А можешь сделать плз так чтоб можно было читать пм сообщения
|
|
|
|
LuxurY | Дата: Пятница, 18.04.2008, 21:32 | Сообщение # 15 |
Уверенный в себе
Группа:
Продвинутые
Сообщений: 281
Награды: 1
Город: OZ
Репутация: 45
Замечания: 0%
Статус:
| Quote (Hellboy209) И ещё а как отправлять сообщения из консоли? sayr <текст> Quote (Hellboy209) А можешь сделать плз так чтоб можно было читать пм сообщения завтра мож сделаю. ща некогда
www.gtascript.ru admin www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
|
|
|
|