Доступ к архиву

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

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

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

Система ГангЗон

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

SqlLite

Ученик
Привет всем, представояю вам система гангзон!

Описание:
Захватывать можно без комманды p.s ёё тут вобще нету, Короче захватывать зону можно
одним способом, тебе надо убить врага на его зоне, и тогда начнётся ВАР.

Приступим к установке, добавляем ко всем #define
PHP:
// GZ
#define MAX_GANGZONES 48
#define REOWN_TURF 4
#define GANGAREA_WARNINGS 2
#define GANGAREA_TAKE 4
Теперь, ко всем new
PHP:
// GZ
new Float:GangZones[MAX_GANGZONES][4]={
{2787.367675, -1063.354492, 2995.367675, -895.354431},
{2577.861572, -1056.913940, 2787.590087, -898.770690},
{2368.133056, -1056.913940, 2577.861572, -898.770690},
{2158.404541, -1056.913940, 2368.133056, -898.770690},
{1948.676025, -1056.913940, 2158.404541, -898.770690},
{1738.947509, -1056.913940, 1948.676025, -898.770690},
{1738.947509, -2163.916503, 1948.676025, -2005.773437},
{2787.590087, -1215.057128, 2997.318603, -1056.913940},
{2787.590087, -1373.200439, 2997.318603, -1215.057128},
{2787.590087, -1531.343750, 2997.318603, -1373.200439},
{2787.590087, -1689.486938, 2997.318603, -1531.343750},
{2787.590087, -1847.630126, 2997.318603, -1689.486938},
{2787.590087, -2005.773437, 2997.318603, -1847.630126},
{2787.590087, -2163.916503, 2997.318603, -2005.773437},
{2577.861572, -1215.057128, 2787.590087, -1056.913940},
{2577.861572, -1373.200439, 2787.590087, -1215.057128},
{2577.861572, -1531.343750, 2787.590087, -1373.200439},
{2577.861572, -1689.486938, 2787.590087, -1531.343750},
{2577.861572, -1847.630126, 2787.590087, -1689.486938},
{2577.861572, -2005.773437, 2787.590087, -1847.630126},
{2577.861572, -2163.916503, 2787.590087, -2005.773437},
{2368.133056, -1215.057128, 2577.861572, -1056.913940},
{2368.133056, -1373.200439, 2577.861572, -1215.057128},
{2368.133056, -1531.343750, 2577.861572, -1373.200439},
{2368.133056, -1689.486938, 2577.861572, -1531.343750},
{2368.133056, -1847.630126, 2577.861572, -1689.486938},
{2368.133056, -2005.773437, 2577.861572, -1847.630126},
{2368.133056, -2163.916503, 2577.861572, -2005.773437},
{2158.404541, -1215.057128, 2368.133056, -1056.913940},
{2158.404541, -1373.200439, 2368.133056, -1215.057128},
{2158.404541, -1531.343750, 2368.133056, -1373.200439},
{2158.404541, -1689.486938, 2368.133056, -1531.343750},
{2158.404541, -1847.630126, 2368.133056, -1689.486938},
{2158.404541, -2005.773437, 2368.133056, -1847.630126},
{2158.404541, -2163.916503, 2368.133056, -2005.773437},
{1948.676025, -1215.057128, 2158.404541, -1056.913940},
{1948.676025, -1373.200439, 2158.404541, -1215.057128},
{1948.676025, -1531.343750, 2158.404541, -1373.200439},
{1948.676025, -1689.486938, 2158.404541, -1531.343750},
{1948.676025, -1847.630126, 2158.404541, -1689.486938},
{1948.676025, -2005.773437, 2158.404541, -1847.630126},
{1948.676025, -2163.916503, 2158.404541, -2005.773437},
{1738.947509, -1215.057128, 1948.676025, -1056.913940},
{1738.947509, -1373.200439, 1948.676025, -1215.057128},
{1738.947509, -1531.343750, 1948.676025, -1373.200439},
{1738.947509, -1689.486938, 1948.676025, -1531.343750},
{1738.947509, -1847.630126, 1948.676025, -1689.486938},
{1738.947509, -2005.773437, 1948.676025, -1847.630126}
};
new GZColor[4]={0xFF00FFAA,0xB8860BAA,0x36D352AA,0x00FDFDAA};// Цвета банд
new gangzone[MAX_GANGZONES][1];
new gzc[sizeof(GangZones)];
new gzkillteam2[MAX_PLAYERS];
new gzkillteam[MAX_PLAYERS];
new taimer11;
new taimer22;
new taimer33;
new taimer44;

Добавляем в паблик public OnPlayerDeath(playerid, killerid, reason) добавляем
PHP:
// GZ
if(PlayerInfo[killerid][pLeader] == 12 || PlayerInfo[killerid][pLeader] == 13 || PlayerInfo[killerid][pLeader] == 15 || PlayerInfo[killerid][pLeader] == 17  || PlayerInfo[killerid][pMember] == 12 || PlayerInfo[killerid][pMember] == 13 || PlayerInfo[killerid][pMember] == 15 || PlayerInfo[killerid][pMember] == 17)
{
if(PlayerInfo[playerid][pLeader] == 12 || PlayerInfo[playerid][pLeader] == 13 || PlayerInfo[playerid][pLeader] == 15 || PlayerInfo[playerid][pLeader] == 17 || PlayerInfo[playerid][pMember] == 12 || PlayerInfo[playerid][pMember] == 13 || PlayerInfo[playerid][pMember] == 15 || PlayerInfo[playerid][pMember] == 17)
{
for(new h = 0; h < sizeof(GangZones); h++)
{
if(IsPlayerInArea(killerid, GangZones[h][0], GangZones[h][1], GangZones[h][2], GangZones[h][3]))
{
if(PlayerInfo[killerid][pMember] > 0)
{
taimer33 = PlayerInfo[killerid][pMember];
}
else if(PlayerInfo[killerid][pLeader] > 0)
{
taimer33 = PlayerInfo[killerid][pLeader];
}
if(PlayerInfo[playerid][pMember] > 0)
{
taimer44 = PlayerInfo[playerid][pMember];
}
else if(PlayerInfo[playerid][pLeader] > 0)
{
taimer44 = PlayerInfo[playerid][pLeader];
}
if(taimer33 == 12)
{
gzkillteam2[killerid]++;
if(gzkillteam2[killerid] == REOWN_TURF)
{
GangZoneStopFlashForAll(gzc[h]);
GangZoneHideForAll(gzc[h]);
GangZoneShowForAll(gzc[h], GZColor[0]);
gzkillteam2[killerid] = 0;
}
}
if((taimer44 != 12) && (taimer33 == 12) && (killerid != INVALID_PLAYER_ID))
{
gzkillteam[killerid]++;
if(gzkillteam[killerid] == GANGAREA_WARNINGS)
{
if(gangzone[h][taimer11] == 1)
{
return 1;
}
GangZoneFlashForAll(gzc[h],GZColor[0]);
}
if(gzkillteam[killerid] == GANGAREA_TAKE)
{
if(gangzone[h][taimer11] == 1)
{
return 1;
}
GangZoneStopFlashForAll(gzc[h]);
GangZoneHideForAll(gzc[h]);
GangZoneShowForAll(gzc[h], GZColor[0]);
gangzone[h][taimer11] = 1;
gangzone[h][taimer22] = 1;
gzkillteam[killerid]=0;
}
}
if(taimer33 == 13)
{
gzkillteam2[killerid]++;
if(gzkillteam2[killerid] == REOWN_TURF)
{
GangZoneStopFlashForAll(gzc[h]);
GangZoneHideForAll(gzc[h]);
GangZoneShowForAll(gzc[h], GZColor[1]);
gzkillteam2[killerid] = 0;
}
}
if((taimer44 != 13) && (taimer33 == 13) && (killerid != INVALID_PLAYER_ID))
{
gzkillteam[killerid]++;
if(gzkillteam[killerid] == GANGAREA_WARNINGS)
{
if(gangzone[h][taimer11] == 2)
{
return 1;
}
GangZoneFlashForAll(gzc[h],GZColor[1]);
}
if(gzkillteam[killerid] == GANGAREA_TAKE)
{
if(gangzone[h][taimer11] == 2)
{
return 1;
}
GangZoneStopFlashForAll(gzc[h]);
GangZoneHideForAll(gzc[h]);
GangZoneShowForAll(gzc[h], GZColor[1]);
gangzone[h][taimer11] = 2;
gangzone[h][taimer22] = 2;
gzkillteam[killerid]=0;
}
}
if(taimer33 == 15)
{
gzkillteam2[killerid]++;
if(gzkillteam2[killerid] == REOWN_TURF)
{
GangZoneStopFlashForAll(gzc[h]);
GangZoneHideForAll(gzc[h]);
GangZoneShowForAll(gzc[h], GZColor[2]);
gzkillteam2[killerid] = 0;
}
}
if((taimer44 != 15) && (taimer33 == 15) && (killerid != INVALID_PLAYER_ID))
{
gzkillteam[killerid]++;
if(gzkillteam[killerid] == GANGAREA_WARNINGS)
{
if(gangzone[h][taimer11] == 3)
{
return 1;
}
GangZoneFlashForAll(gzc[h],GZColor[2]);
}
if(gzkillteam[killerid] == GANGAREA_TAKE)
{
if(gangzone[h][taimer11] == 2)
{
return 1;
}
GangZoneStopFlashForAll(gzc[h]);
GangZoneHideForAll(gzc[h]);
GangZoneShowForAll(gzc[h], GZColor[2]);
gangzone[h][taimer11] = 3;
gangzone[h][taimer22] = 3;
gzkillteam[killerid]=0;
}
}
if((taimer44 != 17) && (taimer33 == 17) && (killerid != INVALID_PLAYER_ID))
{
gzkillteam[killerid]++;
if(gzkillteam[killerid] == GANGAREA_WARNINGS)
{
if(gangzone[h][taimer11] == 2)
{
return 1;
}
GangZoneFlashForAll(gzc[h],GZColor[3]);
}
if(gzkillteam[killerid] == GANGAREA_TAKE)
{
if(gangzone[h][taimer11] == 2)
{
return 1;
}
GangZoneStopFlashForAll(gzc[h]);
GangZoneHideForAll(gzc[h]);
GangZoneShowForAll(gzc[h], GZColor[3]);
gangzone[h][taimer11] = 3;
gangzone[h][taimer22] = 3;
gzkillteam[killerid]=0;
}
}
if(taimer33 == 17)
{
gzkillteam2[killerid]++;
if(gzkillteam2[killerid] == REOWN_TURF)
{
GangZoneStopFlashForAll(gzc[h]);
GangZoneHideForAll(gzc[h]);
GangZoneShowForAll(gzc[h], GZColor[3]);
gzkillteam2[killerid] = 0;
}
}
GZSave();
}
}
}
}

Добавьте в паблик public OnPlayerDisconnect(playerid, reason)
PHP:
GZSave();
Добавляем в паблик public OnPlayerSpawn(playerid) >
PHP:
	new gzcolor;
	for(new h = 0; h < sizeof(GangZones); h++)
	{
		if (gangzone[h][taimer11] == 1)
	{
	gzcolor = GZColor[0];
	}
		else if(gangzone[h][taimer11] == 2)
	{
	gzcolor = GZColor[1];
	}
		else if(gangzone[h][taimer11] == 3)
	{
	gzcolor = GZColor[2];
	}
		else if(gangzone[h][taimer11] == 4)
	{
	gzcolor = GZColor[3];
	}
		GangZoneShowForPlayer(playerid, gzc[h], gzcolor);
	}
Теперь в паблик OnGameModeInit()
PHP:
// GZ
GZLoad();
	for(new h = 0; h < sizeof(GangZones); h++)
	{
		gzc[h] = GangZoneCreate(GangZones[h][0], GangZones[h][1], GangZones[h][2], GangZones[h][3]);
	}

Добавляем в конец мода
PHP:
stock GZLoad()
{
	new arrCoords[2][512];
	new strFromFile2[512];
	new File: file = fopen("gzfile.cfg", io_read);
	if (file)
	{
	new idx;
	while (idx < MAX_GANGZONES)
	{
		fread(file, strFromFile2);
		split(strFromFile2, arrCoords, ',');
		gangzone[idx][taimer11] = strval(arrCoords[0]);
		gangzone[idx][taimer22] = strval(arrCoords[1]);
		idx++;
		}
			fclose(file);
			printf("Загруженно гангзон %d",idx);
		}
	return 1;
}

stock GZSave()
{
	new idx;
	new File: file2;
	while (idx < MAX_GANGZONES)
	{
		new coordsstring[512];
		format(coordsstring, sizeof(coordsstring), "%d,%d\n",
		gangzone[idx][taimer11],
		gangzone[idx][taimer22]);
		if(idx == 0)
		{
			file2 = fopen("gzfile.cfg", io_write);
		}else{
			file2 = fopen("gzfile.cfg", io_append);
		}
		fwrite(file2, coordsstring);
		idx++;
		fclose(file2);
	}
	return 1;
}

stock IsPlayerInArea(playerid, Float:min_x, Float:min_y ,Float:max_x, Float:max_y)
{
	new Float:X, Float:Y, Float:Z;
	GetPlayerPos(playerid, X, Y, Z);
	if(X <= max_x && X >= min_x && Y <= max_y && Y >= min_y) return 1;
	return 0;
}

Ну вот и всё ГЗ готовы!
Добавьте в папку с сервером scriptfiles

Автор: Jeff_Hardy

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