Вторник, 02.12.2008, 18:09
 
 
Приветствую Вас Проезжий | RSS
[ Новые сообщения · Участники · Правила форума · Поиск! · RSS ]
Статистика Форума
Последние ответы Популярные темы Лучшие пользователи TOP 7
  • GTA 4 уже можно с... [GTA 4]
  • Боитесь ли вы при... [Обо Всём]
  • Помощь новечкам п... [Вопросы и Проблемы]
  • info об участника... [Media-ProGroup]
  • Литвинко или Литв... [Обо Всём]
  • Top's 100 bt ... [Юмор]
  • Adobe Photoshop C... [Графика и дизайн]
  • Вопрос - Ответ (Ответов: 959)
  • Обсуждение мода CityLi... (Ответов: 923)
  • Задавайте сюда ваши во... (Ответов: 919)
  • Помощь новечкам по скр... (Ответов: 610)
  • Обратный отщёт от 500 (Ответов: 512)
  • Пошли всех на хуй тут! (Ответов: 509)
  • Pen1 LS v1.4 by ONEhel... (Ответов: 386)
  • MiX (Сообщений: 2609)
  • AXE (Сообщений: 2262)
  • OKStyle™ (Сообщений: 1934)
  • fAkm4n (Сообщений: 1728)
  • RockStarGamer (Сообщений: 1608)
  • DarkByte (Сообщений: 1315)
  • MAK (Сообщений: 1293)
  • Страница 1 из 41234»
    Модератор форума: XAOC 
    Форум о GTA Multiplayers. GTA SA-MP, MTA, VC-MP, IV-MP. » San Andreas MultiPlayer » Wiki-Samp-Rus » Русские буквы в консоли! (Начинаем переводить строки print на русский язык!)
    Русские буквы в консоли!
    LuxurYДата: Вторник, 12.02.2008, 09:12 | Сообщение # 1
    Уверенный

    Группа: Продвинутые
    Сообщений: 268
    Город: OZ
    Статус: status
    Всем известно что русские символы нормально не отображаются в консоли.

    Когда мы пишем:

    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
    Город: 63RUS
    Статус: status
    У меня не пашет sorry

     
    LuxurYДата: Вторник, 12.02.2008, 14:38 | Сообщение # 3
    Уверенный

    Группа: Продвинутые
    Сообщений: 268
    Город: OZ
    Статус: status
    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
    Освоившийся

    Группа: Продвинутые
    Сообщений: 124
    Статус: status
    напишите готовый скрипт , не пойму что куда совать wall wall wall wall wall wall wall

     
    LuxurYДата: Четверг, 14.02.2008, 19:34 | Сообщение # 5
    Уверенный

    Группа: Продвинутые
    Сообщений: 268
    Город: OZ
    Статус: status
    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
     
    Kurosaki_AizenДата: Понедельник, 03.03.2008, 23:11 | Сообщение # 6
    Постоялец

    Группа: Продвинутые
    Сообщений: 325
    Статус: status
    А как можно заменить все printf, на printfr ? Выдает ошибку если все =\



    Name Kurosaki_Aizen
    [GM] SFRL 0.3 - RELEASED (100%)
    [GM] SARSL 0.1 - RELEASED (100%)
    [GM] SARSL 0.2 - RELEASED (100%)

    Valakas SA-MP Devloper
    Valakas GF > 40000 lines ^^

     
    LuxurYДата: Вторник, 04.03.2008, 22:07 | Сообщение # 7
    Уверенный

    Группа: Продвинутые
    Сообщений: 268
    Город: OZ
    Статус: status
    Quote (GoNT1k)
    А как можно заменить все printf, на printfr ? Выдает ошибку если все =\

    нельзя. единственный вариант - сначала форматировать строку а потом отсылась ее новой функцией

    www.gtascript.ru admin
    www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
     
    LuxurYДата: Пятница, 21.03.2008, 15:56 | Сообщение # 8
    Уверенный

    Группа: Продвинутые
    Сообщений: 268
    Город: OZ
    Статус: status
    отсылка русских сообщений из консоли:

    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 | Сообщение # 9
    Группа: Удаленные





    Блин LuxurY я чото не могу понять ну выложи плизз эт же быстро ну плизззззз
     
    LuxurYДата: Пятница, 18.04.2008, 20:37 | Сообщение # 10
    Уверенный

    Группа: Продвинутые
    Сообщений: 268
    Город: OZ
    Статус: status
    держите скрипт.
    http://slil.ru/25704466
    встроена посылка русских сообщений из консоли сервера в чат и возможность чтения сообщений в чате.

    www.gtascript.ru admin
    www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
     
    Hellboy209Дата: Пятница, 18.04.2008, 21:23 | Сообщение # 11
    Группа: Удаленные





    СПС

    Добавлено (18.04.2008, 21:23)
    ---------------------------------------------
    Слушай а он точно нормальный не выдавл тебе предупреждений когда ты компилировал его?

     
    LuxurYДата: Пятница, 18.04.2008, 21:24 | Сообщение # 12
    Уверенный

    Группа: Продвинутые
    Сообщений: 268
    Город: OZ
    Статус: status
    Quote (Hellboy209)
    Слушай а он точно нормальный не выдавл тебе предупреждений когда ты компилировал его?

    точно. что проблемы есть?

    www.gtascript.ru admin
    www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
     
    Hellboy209Дата: Пятница, 18.04.2008, 21:27 | Сообщение # 13
    Группа: Удаленные





    Не всё норм СПС огромное но знаешьв чём недочёт он пм сообщения читать не хочет к сожалегию(((
     
    LuxurYДата: Пятница, 18.04.2008, 21:28 | Сообщение # 14
    Уверенный

    Группа: Продвинутые
    Сообщений: 268
    Город: OZ
    Статус: status
    Quote (Hellboy209)
    Не всё норм СПС огромное но знаешьв чём недочёт он пм сообщения читать не хочет к сожалегию(((

    это не недочет. это просто не реализовано)

    www.gtascript.ru admin
    www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
     
    Hellboy209Дата: Пятница, 18.04.2008, 21:31 | Сообщение # 15
    Группа: Удаленные





    И ещё а как отправлять сообщения из консоли?

    Добавлено (18.04.2008, 21:31)
    ---------------------------------------------
    А можешь сделать плз так чтоб можно было читать пм сообщения

     
    Форум о GTA Multiplayers. GTA SA-MP, MTA, VC-MP, IV-MP. » San Andreas MultiPlayer » Wiki-Samp-Rus » Русские буквы в консоли! (Начинаем переводить строки print на русский язык!)
    Страница 1 из 41234»
    Поиск:

    Copyright SAMP-RUS© 2008