06:52
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: Dima-kun  
Русские буквы в консоли!
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%
Статус:
У меня не пашет sorry
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%
Статус:
напишите готовый скрипт , не пойму что куда совать wall wall wall wall wall wall wall


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
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua