Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Система захвата наркопритона

Статус
В этой теме нельзя размещать новые ответы.

lonin

Компетентный
Здравствуйте ув. пользователи PawnoInfo. Предлагаю вашему вниманию систему захвата наркопритона:be:
Система работает по такому типу: банда которая захватывает территорию прилегающую к наркопритону автоматически становится его владельцем.
Список команд для системы:
/setdrugsprice - устанавливаем цену за наркотики в наркопритоне (Доступна лидеру банды которая является владельцем).
/gzid - узнать ID куска территории (нужно для вычисления территории которая прилегает к наркопритону).

И так, начнем :cd:

Создадим переменную, в которой заложена цена за наркотики:

PHP:
new pricelist      = 15;
new Text3D: PritonLable; // Переменная 3D текста
По умолчанию будет 15 долларов за 1 грамм.

Далее, в паблик OnGameModeInit():
PHP:
        new gname[40];
	switch ( GZInfo[54][gFrakVlad] ) // GZInfo[54][gFrakVlad] - заменяем на свою проверку на владение зоной
        {
	    case 12: format ( gname, sizeof ( gname ),  "{B313E7}The Ballas Gang" ); // Заменяем ID кейсов на ID наших банд
            case 13: format ( gname, sizeof ( gname ),  "{DBD604}Los Santos Vagos Gang" );
	    case 15: format ( gname, sizeof ( gname ),  "{009F00}The Goove st. Gang" );
	    case 17: format ( gname, sizeof ( gname ),  "{01FCFF}Varios Los Aztecas" );
	    case 18: format ( gname, sizeof ( gname ),  "{2A9170}The Rifa Gang" );
	}
	format ( strings, sizeof ( strings),  "{33AAFF}Притон\n {33AAFF}Под контролем:\n {66ff00}%s\n{33AAFF}Цена наркотиков: {66ff00}%d",  gname,  pricelist );
	PritonLable = Create3DTextLabel ( strings, COLOR_BLUE, 2166.0068, -1671.3362, 15.0734, 15.0, 0, 1 );
Создадим сток обновления 3D лэйбла

PHP:
stock UpdatePriton ( )
{
	new string1[200];
        new gname[40];
	switch ( GZInfo[54][gFrakVlad])
        {
	    case 12: format ( gname, sizeof ( gname ),  "{B313E7}The Ballas Gang" );
            case 13: format ( gname, sizeof ( gname ),  "{DBD604}Los Santos Vagos Gang" );
	    case 15: format ( gname, sizeof ( gname ),  "{009F00}The Goove st. Gang" );
	    case 17: format ( gname, sizeof ( gname ),  "{01FCFF}Varios Los Aztecas" );
	    case 18: format ( gname, sizeof ( gname ),  "{2A9170}The Rifa Gang" );
        }
	format ( string1, sizeof ( string1),  "{33AAFF}Притон\n {33AAFF}Под контролем:\n {66ff00}%s\n{33AAFF}Цена наркотиков: {66ff00}%d",  gname,  pricelist );
	Update3DTextLabelText ( PritonLable, 0xFFFF00FF, string1 );
	return true;
}
В окончание капта добавляем и паблиик пайдэя добавим:

PHP:
UpdatePriton ( );
И команда для корректировки цены на наркотики:

PHP:
YCMD: setdrugsprice ( playerid,  params[],  help )
{
        if ( PlayerInfo[playerid][pLogin] == 0) return true;
        if ( !IsAGang ( playerid)) return SendClientMessage ( playerid,  COLOR_GRAD1,  "Вы не бандит!" );
	if ( sscanf ( params,  "d", params[0])) return SendClientMessage ( playerid,  COLOR_WHITE,  "Введите: /setdrugsprice [цена за 1 грамм]" );
	if ( !PlayerToPoint ( 10.0, playerid, 84.7554, -92.8608, 1071.2839)) return SendClientMessage ( playerid,  COLOR_GRAD1,  "Вы не в притоне!" );
        if ( params[0] <= 14 || params[0] >= 101) return SendClientMessage ( playerid,  COLOR_GRAD1,  "Нельзя меньше 15 или больше 100 баксов за грам!" );
 	if ( GZInfo[54][gFrakVlad] == 12 && PlayerInfo[playerid][pLeader] == 12) // Ballas
        {
		pricelist = params[0];
	        format ( YCMDstr, sizeof ( YCMDstr), "Вы установили цену на наркотиви в размере: %d баксов!", params[0] );
		SendClientMessage ( playerid,  COLOR_WHITE, YCMDstr );
	}
	else if ( GZInfo[54][gFrakVlad] == 13 && PlayerInfo[playerid][pLeader] == 13) // Vagos
        {
		pricelist = params[0];
	        format ( YCMDstr, sizeof ( YCMDstr), "Вы установили цену на наркотиви в размере: %d баксов!", params[0] );
		SendClientMessage ( playerid,  COLOR_WHITE, YCMDstr );
	}
	else if ( GZInfo[54][gFrakVlad] == 15 && PlayerInfo[playerid][pLeader] == 15) //Groove
        {
		pricelist = params[0];
	        format ( YCMDstr, sizeof ( YCMDstr), "Вы установили цену на наркотиви в размере: %d баксов!", params[0] );
		SendClientMessage ( playerid,  COLOR_WHITE, YCMDstr );
	}
	if ( GZInfo[54][gFrakVlad] == 17 && PlayerInfo[playerid][pLeader] == 17) // Aztek
        {
		pricelist = params[0];
	        format ( YCMDstr, sizeof ( YCMDstr), "Вы установили цену на наркотиви в размере: %d баксов!", params[0] );
		SendClientMessage ( playerid,  COLOR_WHITE, YCMDstr );
	}
	if ( GZInfo[54][gFrakVlad] == 18 && PlayerInfo[playerid][pLeader] == 18) //Rifa
        {
		pricelist = params[0];
	        format ( YCMDstr, sizeof ( YCMDstr), "Вы установили цену на наркотиви в размере: %d баксов!", params[0] );
		SendClientMessage ( playerid,  COLOR_WHITE, YCMDstr );
	}
	UpdatePriton ( );
	return true;
}
Команда для идентификации территории:
PHP:
YCMD: gzn ( playerid,  params[],  help)
{
        if ( PlayerInfo[playerid][pLogin] == 0) return true;
        if ( PlayerInfo[playerid][pAdmin] < 9 || dostup[playerid] == 0) return true;
        for ( new i = 0; i < 130; i++)
	{
		if ( PlayerToKvadrat ( playerid,  GZInfo[i][gCoords][0],  GZInfo[i][gCoords][1], GZInfo[i][gCoords][2], GZInfo[i][gCoords][3])) //
		{
			new string[100];
                        format ( string,  sizeof ( string),  "Номер этой территории ID: %d",  GZInfo[i][gID] );
			SendClientMessage ( playerid,  COLOR_GREEN,  string );
			return true;
		}
	}
	return true;
}
Вот и все :)

Скриншот:
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу