lonin
Компетентный
Здравствуйте ув. пользователи PawnoInfo. Предлагаю вашему вниманию систему захвата наркопритона:be:
Система работает по такому типу: банда которая захватывает территорию прилегающую к наркопритону автоматически становится его владельцем.
Список команд для системы:
/setdrugsprice - устанавливаем цену за наркотики в наркопритоне (Доступна лидеру банды которая является владельцем).
/gzid - узнать ID куска территории (нужно для вычисления территории которая прилегает к наркопритону).
И так, начнем :cd:
Создадим переменную, в которой заложена цена за наркотики:
По умолчанию будет 15 долларов за 1 грамм.
Далее, в паблик OnGameModeInit():
Создадим сток обновления 3D лэйбла
В окончание капта добавляем и паблиик пайдэя добавим:
И команда для корректировки цены на наркотики:
Команда для идентификации территории:
Вот и все 
Скриншот:
Система работает по такому типу: банда которая захватывает территорию прилегающую к наркопритону автоматически становится его владельцем.
Список команд для системы:
/setdrugsprice - устанавливаем цену за наркотики в наркопритоне (Доступна лидеру банды которая является владельцем).
/gzid - узнать ID куска территории (нужно для вычисления территории которая прилегает к наркопритону).
И так, начнем :cd:
Создадим переменную, в которой заложена цена за наркотики:
PHP:
new pricelist = 15;
new Text3D: PritonLable; // Переменная 3D текста
Далее, в паблик 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 );
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;
}
Скриншот:
