PDA

Просмотр полной версии : [Вопрос] PlayAudioStreamForPlayer



Kazoox
17.05.2014, 22:38
Приветствую, проблема такая: если проигрывать игроку какое-нибудь слово на английском или цифры и т.д - всё работает хорошо, но если на русском - тишина, но ссылку в чат пишет, как бы идёт проигрывание (звук в игре включен и т.д).

PlayAudioStreamForPlayer(playerid,"http://translate.google.kg/translate_tts?ie=UTF-8&q=Привет&tl=ru");
Кто-нибудь сталкивался с такой проблемой? Заранее благодарен.

bred
18.05.2014, 02:54
Приветствую, проблема такая: если проигрывать игроку какое-нибудь слово на английском или цифры и т.д - всё работает хорошо, но если на русском - тишина, но ссылку в чат пишет, как бы идёт проигрывание (звук в игре включен и т.д).

PlayAudioStreamForPlayer(playerid,"http://translate.google.kg/translate_tts?ie=UTF-8&q=Привет&tl=ru");
Кто-нибудь сталкивался с такой проблемой? Заранее благодарен.

В коде ведь написано translate.- значит перевод. Смотря с какого языка у тебя стоит. если Англ по умолч, значит производит)
Такой фигней не занимался

Caypen
18.05.2014, 10:56
format(string3[i],1024,"http://translate.google.kg/translate_tts?ie=UTF-8&q=%s&tl=ru&prev=input",string);
PlayAudioStreamForPlayer(i,string3[i]);
А под конец вместо string свое слово вставляй ну или если Onplayertext,то Text, будет работать со всеми языками,но произношение Русское

Kazoox
18.05.2014, 12:13
format(string3[i],1024,"http://translate.google.kg/translate_tts?ie=UTF-8&q=%s&tl=ru&prev=input",string);
PlayAudioStreamForPlayer(i,string3[i]);
А под конец вместо string свое слово вставляй ну или если Onplayertext,то Text, будет работать со всеми языками,но произношение Русское
Пробовал с OnPlayerText - не работает, только цифры и английские символы произносит.

Caypen
18.05.2014, 12:24
Пробовал с OnPlayerText - не работает, только цифры и английские символы произносит.

странно,не знаю тогда.

Snoop_Dog
18.05.2014, 13:11
В любое место мода

stock AudioMessage(playerid, rad, str[])
{
new Float:px, Float:py, Float:pz;
GetPlayerPos(playerid, px, py, pz);
new world = GetPlayerVirtualWorld(playerid);
static const translate_str1[] = "http://translate.google.kg/translate_tts?ie=UTF-8&q=",
translate_str2[] = "&tl=ru&prev=input";
new stream[(sizeof(translate_str1)-1)+128+(sizeof(translate_str2)-1)+1];
stream = translate_str1, strcat(stream, str), strcat(stream, translate_str2);
new i = GetMaxPlayers();
do{
if(IsPlayerInRangeOfPoint(--i, rad, px, py, pz) && (GetPlayerVirtualWorld(i) == world))
PlayAudioStreamForPlayer(i, stream);
}while(i!=0);
return 1;
}

В public OnPlayerText
ищешь где у тебя произносит слово
Обычно так у меня:

if(RPChat)
{
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,0,1,1,0,1000,1); }
format(string, sizeof(string), "%s: %s", GN(playerid), text);
SetPlayerChatBubble(playerid, text, 0x6495EDFF, 20.0, 10000);
ProxDetector(20.0, playerid, string,COLOR_SERYI,COLOR_SERYI2,COLOR_SERYI3,COLOR_SERYI4,COLOR_SERYI5);
return false;
}
И после ProxDetector вставляешь

AudioMessage(playerid, 60, text); // 60 - дальность
60- это дальность откуда будет слышно,меняй на своё,
за место text можно например поставить слово:
AudioMessage(playerid, 60, "Добро пожаловать на такой то сервер");

Объяснил?

Kazoox
18.05.2014, 13:31
В любое место мода

stock AudioMessage(playerid, rad, str[])
{
new Float:px, Float:py, Float:pz;
GetPlayerPos(playerid, px, py, pz);
new world = GetPlayerVirtualWorld(playerid);
static const translate_str1[] = "http://translate.google.kg/translate_tts?ie=UTF-8&q=",
translate_str2[] = "&tl=ru&prev=input";
new stream[(sizeof(translate_str1)-1)+128+(sizeof(translate_str2)-1)+1];
stream = translate_str1, strcat(stream, str), strcat(stream, translate_str2);
new i = GetMaxPlayers();
do{
if(IsPlayerInRangeOfPoint(--i, rad, px, py, pz) && (GetPlayerVirtualWorld(i) == world))
PlayAudioStreamForPlayer(i, stream);
}while(i!=0);
return 1;
}

В public OnPlayerText
ищешь где у тебя произносит слово
Обычно так у меня:

if(RPChat)
{
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,0,1,1,0,1000,1); }
format(string, sizeof(string), "%s: %s", GN(playerid), text);
SetPlayerChatBubble(playerid, text, 0x6495EDFF, 20.0, 10000);
ProxDetector(20.0, playerid, string,COLOR_SERYI,COLOR_SERYI2,COLOR_SERYI3,COLOR_SERYI4,COLOR_SERYI5);
return false;
}
И после ProxDetector вставляешь

AudioMessage(playerid, 60, text); // 60 - дальность
60- это дальность откуда будет слышно,меняй на своё,
за место text можно например поставить слово:
AudioMessage(playerid, 60, "Добро пожаловать на такой то сервер");

Объяснил?

Все равно, русские символы игнорирует, просто молчит, но ссылку в чат выбивает, а звука нет.

Snoop_Dog
18.05.2014, 15:00
Странно у меня все работает, произносит то что я напиши хоть на русском хоть и на английском

Kazoox
18.05.2014, 16:49
Странно у меня все работает, произносит то что я напиши хоть на русском хоть и на английском
Вот! Должно ведь, а не работает, я всё правильно делаю...

Kazoox
19.05.2014, 08:53
Выручайте.

- - - Добавлено - - -

Всё, уже помогли, решение - вот такая функция:

stock ReproductionOfText(playerid,str[])
{
new st1[700],st2[140];
strcat(st2,str);
for(new i, l = strlen(st2); i < l; i++) {
switch(st2[i]) {
case 'А','а': strcat(st1, "%D0%B0");
case 'Б','б': strcat(st1, "%D0%B1");
case 'В','в': strcat(st1, "%D0%B2");
case 'Г','г': strcat(st1, "%D0%B3");
case 'Д','д': strcat(st1, "%D0%B4");
case 'Е','е': strcat(st1, "%D0%B5");
case 'Ё','ё': strcat(st1, "%D1%91");
case 'Ж','ж': strcat(st1, "%D0%B6");
case 'З','з': strcat(st1, "%D0%B7");
case 'И','и': strcat(st1, "%D0%B8");
case 'Й','й': strcat(st1, "%D0%B9");
case 'К','к': strcat(st1, "%D0%BA");
case 'Л','л': strcat(st1, "%D0%BB");
case 'М','м': strcat(st1, "%D0%BC");
case 'Н','н': strcat(st1, "%D0%BD");
case 'О','о': strcat(st1, "%D0%BE");
case 'П','п': strcat(st1, "%D0%BF");
case 'Р','р': strcat(st1, "%D1%80");
case 'С','с': strcat(st1, "%D1%81");
case 'Т','т': strcat(st1, "%D1%82");
case 'У','у': strcat(st1, "%D1%83");
case 'Ф','ф': strcat(st1, "%D1%84");
case 'Х','х': strcat(st1, "%D1%85");
case 'Ц','ц': strcat(st1, "%D1%86");
case 'Ч','ч': strcat(st1, "%D1%87");
case 'Ш','ш': strcat(st1, "%D1%88");
case 'Щ','щ': strcat(st1, "%D1%89");
case 'Ъ','ъ': strcat(st1, "%D1%8A");
case 'Ы','ы': strcat(st1, "%D1%8B");
case 'Ь','ь': strcat(st1, "%D1%8C");
case 'Э','э': strcat(st1, "%D1%8D");
case 'Ю','ю': strcat(st1, "%D1%8E");
case 'Я','я': strcat(st1, "%D1%8F");
default: strcat(st1, st2[i]);
}
}
static const translate_str1[] = "http://translate.google.kg/translate_tts?ie=UTF-8&q=", translate_str2[] = "&tl=ru&prev=input";
static stream[sizeof(translate_str1) + sizeof(translate_str2) + sizeof(st1)];
stream = translate_str1, strcat(stream,st1), strcat(stream,translate_str2);
PlayAudioStreamForPlayer(playerid,stream);
return true;
}
P.S автор Sonic & Tracer