[Release] Royal Voice Chat Plugin [SA-MP]

Раздел за всички игри от поредицата Grand Theft Auto
Post Reply
User avatar
dakata994
Потребител
Потребител
Posts: 7
Joined: 06 May 2014, 16:38
Skype: dakata994
CS Nick: DAMDARADAM
Favorite version: CS: 1.6

[Release] Royal Voice Chat Plugin [SA-MP]

Post by dakata994 »

Здравейте, ще ви представя още една разработка на Royal Roleplay и то е точно Voice Chat, който всеки търси в SA-MP сървърите.
Ще опиша повечето неща за плъгина и какви проблеми има или може да създаде в зависимост от ситуацията. Не предлагам помощ с поправяне/едитване/инсталиране на плъгина!!! Ще дам tutorial/инструкции за инсталиця към Roleplay сървър.


Но преди да започнем, искам да добавя, че това не е изцяло моя разработка, участват екип от хора с които успяхме да направим използването на Voice Chat в SA-MP нормално.


Какво представялва Royal Voice Chat Plugin?
Това е плъгин/client mod за сървър на SA-MP (0.3.7), който ви позволява да говорите в играта с другите играчи. За използването на Voice Chat-a са необходими две неща, от играча и сървъра. Играча трябва да има инсталирани всички нужни файлове за да може да говори в сървъра.
Сървъра трябва да има инсталиран и настроен плъгин на Royal Voice Chat. (ще дам инструкции по-долу)


Как да инсталираме Royal Voice Chat в сървъра ни?
Изтегляте сървър файловете от линковете и ги инсталирате в предназначените им за тях места.
След това ще трябва да отворите вашият мод/скрипт и да добавите това към останалите ви Includes.

Code: Select all

#include      <royalvoice>
След това плъгина ще изисква да му възложите stream за всеки играч. Добавяте това след Includes или където ви е удобно в началото на скрипта.

Code: Select all

// Voice chat settings

new SV_SGSTREAM:player_stream[MAX_PLAYERS]; //global stream
forward globalStreamTimer(playerid);


new streamTimer[MAX_PLAYERS];
Настройка за сървъра:

Code: Select all

добавяте в  public OnGameModeInit() 

    sv_init(16000, SV_FREQUENCY_HIGH, SV_VOICE_RATE_40MS, 1.0, 1.0, 1.0);  // инициализиране на настройките на плъгина

Инициализираме скрипта при влизане на играч:

Code: Select all

public OnPlayerConnect(playerid)
{	
	if(sv_get_version(playerid) == SV_NULL)
	{
        SendClientMessage(playerid, -1, "Нямате Royal-Voice Chat инсталиран. За повече информация: www.royal-rp.com");
    }

	else
	{
	    SendClientMessage(playerid, -1, "Royal Voice Chat успешно се инициализира. Използвайте 'B' за да говорите в сървъра!");
	}
    // проверка за микрофон
    if(!sv_has_micro(playerid)) {
        SendClientMessage(playerid, -1, "Нямате включен микрофон.");
    }
    // глобален стреам/voice chat при влизане
    player_stream[playerid] = sv_sgstream_create();
    sv_stream_set_parameter(player_stream[playerid], SV_PARAMETER_VOLUME, 10);

    // инсталация на копче за говорене
    sv_set_key(playerid, 0x42); // 0x42 - код за бутон 'B'
    streamTimer[playerid] = SetTimerEx("globalStreamTimer", 2500, true, "i", playerid);
	return true;
}
Задължително изтриваме стрийма на играч при изход:

Code: Select all

public OnPlayerDisconnect(playerid, reason) {

    sv_stream_delete(player_stream[playerid]);  // изтриване на стийм когато играч влезе
	return 1;
	
}
Добавяме public когато играч използва войс чата.

Code: Select all

public SV_BOOL:OnPlayerVoice(
    SV_UINT:playerid,   // ID на пращача
    SV_PACKET:packet,   // Packet дескриптор
    SV_UINT:volume      // Ниво на звук [0-32768]
) {
   	SetPlayerChatBubble(playerid, "(VOICE)", COLOR_YELLOW, 13.00, 1000);
   	sv_send_packet(packet, player_stream[playerid]);    // изпращане на звуков пакет към играч/и
	return SV_TRUE;     // Изтриване на изпратения вече пакет? (SV_TRUE - да, SV_FALSE - не)
}
Да не забравим нашият таймер който добавихме в началото на скрипта!

Code: Select all

public globalStreamTimer(playerid)
{
	new Float:pos[3];
	GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
	for( new p = 0; p < MAX_PLAYERS; p++)
	{
	    if(playerid == p) continue;
	    if(!IsPlayerConnected(p)) continue;
    	if(!IsPlayerInRangeOfPoint(p, 13.0, pos[0], pos[1], pos[2]))
		{
		    sv_stream_player_detach(player_stream[p], playerid);
   			
		}
   		else
   		{
	    	
	    	sv_stream_player_attach(player_stream[p], playerid);
		}
	}
	return 1;
}

Това е всичко, което трябва да направите за да работи по нормален начин плъгина в сървъра ви.

Проблеми с плъгина:
- При постоянното използване на войс чата се натрупват твърде много пакети към плъгина и не функционира правилно. С времето се оправя.
- При определени редки условия, плъгина може да крашне целия сървър. Това може да се оправи чрез определени проверки при стриймовете или закачането на играч към стрийм.
- При инсталицията на мода към играта ви, ще ви са нужни определените условия за да може да ви зареди Cleo или SAMPFUNCS (ако се използва такъв)! Ако не ви зареждат напълно, ще трябва да потърсите информация в интернет. Това не е свързано пряко с плъгина!


Credits:
*** CyberMor (главен създател на плъгина)
*** Dakata (разработка на custom версия на плъгина)
*** Radoslav Belov (Beta Testing)
*** Stanislav Bondarev (разработка на custom версия на плъгина)
**** И на всички останали, които помагаха с тестването на плъгина преди да бъде пуснат в действие!!!


Server Files: http://www.mediafire.com/file/v2nhshcmf ... r.rar/file
Client Files (има инструкции в архива): http://www.mediafire.com/file/wvaq7odef ... t.rar/file

!!! Не предлагам support за плъгина !!!
Post Reply

Return to “Grand Theft Auto”