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

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

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

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

Мануал DM-Зона (/joinz, /dmzona) + Топ убийств (/jtop, /dmtop)

Joker_

Изучающий
Пользователь
Регистрация
21 Июн 2018
Сообщения
194
Лучшие ответы
0
Репутация
3
Здравствуйте, решил Вам выложить свою систему ДМ-Зон + топ убийств, которые я писал для своего мода.


Что используется?:
  • Pawn.CMD.
    [*] MySQL r40+


Ко всем new и define добавляем:
PHP:
#define GRE "{808080}"
#define YAK "{D8F781}"
#define DGC "{98fc42}"
#define C_INF "{6d45b5}[Информация]: {FFFFFF}"
#define Message(%0,%1) SendClientMessage(%0, -1, %1)
new format_string[500];
#define send(%0,%1,%2,%3)    format(format_string, sizeof(format_string),%2,%3) && SendClientMessage(%0, %1, format_string)
#define WHT "{FFFFFF}"
#define RED "{FF6347}"

new dm_zona_dplayers = 20,
    dm_zona_time[MAX_PLAYERS],
	bool:in_mini_game_dm[MAX_PLAYERS],
	bool:dm_zona_start = false,
	bool:dm_zona_hp[MAX_PLAYERS],
	bool:dm_zona_dostup = false,
	dm_zona_map = 1,
	dm_zona_gun = 24,
	dm_zona_players,
	dm_zona_cash = 300,
	dm_zona_prize
;
PHP:
new WeaponNames[][32] =
{
	{"Unarmed (Fist)"}, // 0
	{"Brass Knuckles"}, // 1
	{"Golf Club"}, // 2
	{"Night Stick"}, // 3
	{"Knife"}, // 4
	{"Baseball Bat"}, // 5
	{"Shovel"}, // 6
	{"Pool Cue"}, // 7
	{"Katana"}, // 8
	{"Chainsaw"}, // 9
	{"Purple Dildo"}, // 10
	{"Big White Vibrator"}, // 11
	{"Medium White Vibrator"}, // 12
	{"Small White Vibrator"}, // 13
	{"Flowers"}, // 14
	{"Cane"}, // 15
	{"Grenade"}, // 16
	{"Teargas"}, // 17
	{"Molotov"}, // 18
	{" "}, // 19
	{" "}, // 20
	{" "}, // 21
	{"Colt 45"}, // 22
	{"Colt 45 (Silenced)"}, // 23
	{"Desert Eagle"}, // 24
	{"Normal Shotgun"}, // 25
	{"Sawnoff Shotgun"}, // 26
	{"Combat Shotgun"}, // 27
	{"Micro Uzi (Mac 10)"}, // 28
	{"MP5"}, // 29
	{"AK47"}, // 30
	{"M4"}, // 31
	{"Tec9"}, // 32
	{"Country Rifle"}, // 33
	{"Sniper Rifle"}, // 34
	{"Rocket Launcher"}, // 35
	{"Heat-Seeking Rocket Launcher"}, // 36
	{"Flamethrower"}, // 37
	{"Minigun"}, // 38
	{"Satchel Charge"}, // 39
	{"Detonator"}, // 40
	{"Spray Can"}, // 41
	{"Fire Extinguisher"}, // 42
	{"Camera"}, // 43
	{"Night Vision Goggles"}, // 44
	{"Infrared Vision Goggles"}, // 45
	{"Parachute"}, // 46
	{"Fake Pistol"} // 47
};
В массив Player/PlayerInfo:
PHP:
dm_zona_kill
В таблицу базы данных accounts/players добавляем новый параметр dm_zona_kill, а так же добавляем dm_zona_kill в загрузку аккаунта в моде

В любое место в моде, можно сразу же после всех new/stock:
PHP:
static const Float:dm_zona_spawns_1[8][3] = {
	{-1113.1654,1036.3516,1342.8997}, {-1085.9272,1092.7463,1343.8043},
	{-1050.0660,1074.5396,1343.6787}, {-1025.4117,1030.4363,1342.4216},
	{-990.2175,1089.6490,1342.9261}, {-1031.8003,1097.8247,1343.0424},
	{-975.2753,1080.1589,1344.9797}, {-1133.0065,1037.5812,1345.7405}
};

static const Float:dm_zona_spawns_2[14][3] = {
	{1093.1000,2078.9958,10.8203}, {1059.9731,2136.2161,10.8203},
	{1085.1721,2080.1609,10.8203}, {1058.1635,2113.3674,10.8203},
	{1087.0702,2097.8203,10.8203}, {1061.5137,2102.7705,10.8203},
	{1076.6581,2124.1982,10.8203}, {1066.0292,2096.7593,10.8203},
	{1062.3263,2088.0764,10.8203}, {1088.4138,2092.2185,15.3504},
	{1071.9491,2081.2031,10.8203}, {1092.6129,2110.0356,15.3504},
	{1087.5779,2079.4146,15.3504}, {1083.4116,2120.7212,15.3504}
};

static const Float:dm_zona_spawns_3[13][3] = {
	{1722.9176,-1640.1487,20.2241}, {1709.4572,-1666.4033,23.7031},
	{1706.0963,-1650.4434,20.2206}, {1711.3751,-1672.9849,27.2016},
	{1705.1978,-1667.5499,20.2259}, {1712.0964,-1644.2849,27.2022},
	{1715.9752,-1673.4958,20.2188}, {1730.2886,-1640.6260,27.2557},
	{1733.3864,-1658.3081,23.7213}, {1733.5148,-1654.3784,27.2339},
	{1727.8553,-1640.4235,23.7265}, {1728.6294,-1668.6842,27.1953},
	{1712.3771,-1643.6705,23.6797}
};

static const Float:dm_zona_spawns_4[9][3] = {
	{1306.3790,-13.1796,1001.0334}, {1265.8915,5.9480,1008.2578},
	{1304.8861,-60.2498,1002.4977}, {1250.2515,5.8562,1008.2578},
	{1283.3040,-56.9088,1002.5019}, {1261.9590,-63.6042,1002.4969},
	{1260.4585,-43.9380,1001.0266}, {1253.0823,-26.2008,1001.0329},
	{1258.9275,-10.9761,1001.0234}
};

static const Float:dm_zona_spawns_5[21][3] = {
	{359.8879,186.6128,1008.3828}, {371.8593,172.7658,1014.1875},
	{366.7436,213.0154,1008.3828}, {372.3076,184.5204,1014.1797},
	{356.8564,207.1264,1008.3828}, {375.2129,192.0346,1014.1875},
	{351.9062,196.9235,1008.3828}, {355.7465,176.4535,1014.1875},
	{376.1720,182.0200,1008.3828}, {337.0713,163.7384,1014.1875},
	{366.1848,161.2310,1008.3828}, {328.3865,162.7866,1014.1797},
	{377.9940,163.6317,1014.1875}, {371.9886,153.5953,1015.9844},
    {364.5349,163.5983,1019.9844}, {349.4185,164.0307,1025.7891},
	{362.3849,193.9660,1019.9912}, {363.5948,155.8303,1025.7964},
	{369.8141,175.3890,1019.9844}, {350.7717,164.2837,1019.9912},
	{358.4794,162.4796,1025.7964}
};

static const Float:dm_zona_spawns_6[10][3] = {
	{2175.6323,1577.7509,999.9684}, {2218.3118,1614.0970,999.9827},
	{2181.7744,1590.7332,999.9777}, {2205.0493,1611.0280,999.9747},
	{2187.7190,1578.2571,999.9675}, {2191.3894,1619.8719,999.9808},
	{2211.9795,1589.0225,999.9772}, {2228.5701,1586.7268,999.9615},
	{2220.9033,1552.4304,1004.7188}, {2224.4404,1611.3668,999.9734}
};
В паблик OnPlayerDisconnect:
PHP:
public OnPlayerDisconnect
{
    dm_zona_players--;
	in_mini_game_dm[playerid] = false;
	dm_zona_hp[playerid] = false;
}
В паблик OnPlayerDeath: (connectionHandle - меняем на свою переменную подключения к базе данных)
PHP:
if(in_mini_game_dm[playerid] == true)
{
	new sql_str[300];
	in_mini_game_dm[playerid] = false;
	dm_zona_players--;
	dm_zona_hp[playerid] = false;
	SetPlayerHealth(killerid, 100);

	Player[killerid][dm_zona_kill]++;

	mysql_format(connectionHandle, sql_str, sizeof(sql_str), "UPDATE `accounts` SET `dm_zona_kill` = '%d' WHERE `Name` = '%s'", Player[killerid][dm_zona_kill], Player[killerid][Name]);
	mysql_tquery(connectionHandle, sql_str, "", "");
}
Ко всем командам: (connectionHandle - меняем на свою переменную подключения к базе данных, Player[playeird][jail_time] меняем на свою переменную проверки на игрока в тюрьме, Player[playerid][Wanted] - меняем на свою переменную проверки звезд у игрока, AdminPlayer[playerid][admin_level] - меняем на свою проверку на уровень админки)
PHP:
CMD:dmtop(playerid)
{
    return mysql_tquery(connectionHandle,"SELECT `Name`, `dm_zona_kill` FROM `accounts` WHERE `dm_zona_kill` > '1' ORDER BY `dm_zona_kill` DESC LIMIT 10", "show_dmtop", "d", playerid);
}
PHP:
CMD:dmzona(playerid)
{
	if(dm_zona_start == false)
		return Message(playerid,"{F31212}• "GRE"ДМ-Зона не открыта.");

	if(dm_zona_dostup == true)
		return Message(playerid,"{F31212}• "GRE"ДМ-Зона уже запущена.");

	if(Player[playerid][jail_time] > 0)
		return Message(playerid,"{F31212}• "GRE"Невозможно зайди на ДМ-зону будучи, в тюрьме.");

	if(Player[playerid][Wanted] != 0)
		return Message(playerid,"{F31212}• "GRE"Вы в розыске.");

	if(in_mini_game_dm[playerid] == true)
		return Message(playerid,"{F31212}• "GRE"Вы уже на находитесь на ДМ-Зоне.");

	if(dm_zona_players == 20)
		return Message(playerid,"{F31212}• "GRE"ДМ-Зона заполнена.");

	if(GetPlayerVirtualWorld(playerid) != 0)
		return Message(playerid,"{F31212}• "GRE"Вы находитесь в интерьере, выйдите на улицу.");

	if(IsPlayerInAnyVehicle(playerid))
		return Message(playerid, "{F31212}• "GRE"Покиньте транспортное средство.");

	if(GetMoney(playerid) < dm_zona_cash)
		return send(playerid, -1, "{F31212}• "GRE"Недостаточно игровой валюты, необходимо %d$.", dm_zona_cash);

	if(dm_zona_players == dm_zona_dplayers)
	    return Message(playerid, "{F31212}• "GRE"На ДМ-Зоне не осталось свободных мест.");

	switch(dm_zona_map)
	{
	    case 1:
	    {
	        new
				rand = random(sizeof(dm_zona_spawns_1))
			;

			SetPlayerServerPosEx(playerid, dm_zona_spawns_1[rand][0], dm_zona_spawns_1[rand][1], dm_zona_spawns_1[rand][2],0.0, 10, 10);
	    }
	    case 2:
	    {
	        new
				rand = random(sizeof(dm_zona_spawns_2))
			;

			SetPlayerServerPosEx(playerid, dm_zona_spawns_2[rand][0], dm_zona_spawns_2[rand][1], dm_zona_spawns_2[rand][2],0.0, 0, 10);
	    }
	    case 3:
	    {
	        new
				rand = random(sizeof(dm_zona_spawns_3))
			;

			SetPlayerServerPosEx(playerid, dm_zona_spawns_3[rand][0], dm_zona_spawns_3[rand][1], dm_zona_spawns_3[rand][2],0.0, 18, 10);
	    }
	    case 4:
	    {
	        new
				rand = random(sizeof(dm_zona_spawns_4))
			;

			SetPlayerServerPosEx(playerid, dm_zona_spawns_4[rand][0], dm_zona_spawns_4[rand][1], dm_zona_spawns_4[rand][2],0.0, 18, 10);
	    }
	    case 5:
	    {
	        new
				rand = random(sizeof(dm_zona_spawns_5))
			;

			SetPlayerServerPosEx(playerid, dm_zona_spawns_5[rand][0], dm_zona_spawns_5[rand][1], dm_zona_spawns_5[rand][2],0.0, 3, 10);
	    }
	    case 6:
	    {
	        new
				rand = random(sizeof(dm_zona_spawns_6))
			;

			SetPlayerServerPosEx(playerid, dm_zona_spawns_6[rand][0], dm_zona_spawns_6[rand][1], dm_zona_spawns_6[rand][2],0.0, 1, 10);
	    }
	}
	SetPlayerArmour(playerid, 0);
	SetPlayerHealth(playerid, 100);
	TogglePlayerControllable(playerid, 0);
	ResetPlayerWeapons(playerid);

	SetPlayerColor(playerid,0xDC143C80);
	SetMoney(playerid,-dm_zona_cash);

	dm_zona_prize += dm_zona_cash;
	dm_zona_players++;

	in_mini_game_dm[playerid] = true;
    return 1;
}
PHP:
CMD:zm(playerid, params[])
{
	if(ADMIN_PLAYER[playerid][admin_level] < 1) return DostypErr(playerid);
	ShowPlayerDialog(playerid, 446, DSL, !""DGC"[Меню зон]",!"\
	"YAK"1) "WHT"Дм-зона (/dmzona)",!"Выбор",!"Закрыть");
	return 1;
}
В паблик OnDialogResponse:
PHP:
case 1502: return 1;
case 446:
{
    new
        dm_zona_mapname[30]
    ;

	switch(dm_zona_map)
	{
		case 1: dm_zona_mapname = "RC Battlefield";
		case 2: dm_zona_mapname = "LV Warehouse";
		case 3: dm_zona_mapname = "LS Atruim";
		case 4: dm_zona_mapname = "Warehouse";
		case 5: dm_zona_mapname = "Planning dept.";
		case 6: dm_zona_mapname = "Catigula's bas.";
	}

	f(stringi, "\
	"YAK"1) "WHT"Карта: "YAK"%s\n\
	"YAK"2) "WHT"Оружие: "YAK"%s\n\
	"YAK"3) "WHT"Входная плата: "YAK"%d$\n\
	"YAK"4) "WHT"Мест: "YAK"%d.\n\
	"WHT"- Открыть дм-зону\n\
	"WHT"- Закрыть дм-зону\n\
	"WHT"- Старт дм-зоны", dm_zona_mapname, WeaponNames[dm_zona_gun], dm_zona_cash, dm_zona_dplayers);

	ShowPlayerDialogFix(playerid, 447, DSL, !""DGC"[ДМ-Зона (/dmzona)]", stringi, !"Выбор", !"Выход");
}
case 447:
{
    if(!response) return 1;
    switch(listitem)
    {
        case 0:
        {
            if(dm_zona_start == true)
	    		return Message(playerid, "{F31212}• "GRE"ДМ-Зона уже открыта, редактирование запрещено.");

			ShowPlayerDialogFix(playerid, 448, DSL, !""DGC"[Выбор карты]", !"\
			"YAK"1) "WHT"RC Battlefield\n\
			"YAK"2) "WHT"LV Warehouse\n\
			"YAK"3) "WHT"LS Atruim\n\
			"YAK"4) "WHT"Warehouse\n\
			"YAK"5) "WHT"Planning dept.\n\
			"YAK"6) "WHT"Catigula's bas.\n", !"Выбор", !"Закрыть");
        }
        case 1:
        {
            if(dm_zona_start == true)
	    		return Message(playerid, "{F31212}• "GRE"ДМ-Зона уже открыта, редактирование запрещено.");

	    	ShowPlayerDialogFix(playerid, 449, DSI, !""DGC"[Установка оружия]", !""WHT"Введите "YAK"ID "WHT"оружия в поле ниже:", !"Ввод", !"Закрыть");
        }
        case 2:
        {
            if(dm_zona_start == true)
	    		return Message(playerid, "{F31212}• "GRE"ДМ-Зона уже открыта, редактирование запрещено.");

	    	ShowPlayerDialogFix(playerid, 451, DSI, !""DGC"[Установка входной платы]", !""WHT"Введите входную плату "YAK"(от 50$ до 1500$)"WHT":", !"Ввод", !"Закрыть");
        }
        case 3:
        {
            if(dm_zona_start == true)
	    		return Message(playerid, "{F31212}• "GRE"ДМ-Зона уже открыта, редактирование запрещено.");

	    	ShowPlayerDialogFix(playerid, 466, DSI, !""DGC"[Установка мест]", !""WHT"Введите кол-во мест для входа "YAK"(от 2 до 20)"WHT":", !"Ввод", !"Закрыть");
        }
        case 4:
        {
            if(dm_zona_start == true)
	    		return Message(playerid, "{F31212}• "GRE"ДМ-Зона уже открыта.");

            new
		        dm_zona_mapname[30]
		    ;

			switch(dm_zona_map)
			{
				case 1: dm_zona_mapname = "RC Battlefield";
				case 2: dm_zona_mapname = "LV Warehouse";
				case 3: dm_zona_mapname = "LS Atruim";
				case 4: dm_zona_mapname = "Warehouse";
				case 5: dm_zona_mapname = "Planning dept.";
				case 6: dm_zona_mapname = "Catigula's bas.";
			}

	        dm_zona_start = true;
	        dm_zona_players = 0;
	        SetTimer("Start_MGame_DM", 1000*60, 0);

			Message(playerid, ""C_INF"ДМ-Зона открыта.");

			foreach(Player, i)
			{
			        f(stringi,"\
				"RED"[Mini-Game]: Открыт вход на ДМ-Зону | Карта: %s | Оружие: %s | Входная плата: %d$ | /dmzona - вход на ДМ-Зону.", dm_zona_mapname, WeaponNames[dm_zona_gun], dm_zona_cash);
				Message(i, stringi);
		    }
        }
        case 5:
        {
            if(dm_zona_start == false)
	    		return Message(playerid, "{F31212}• "GRE"ДМ-Зона не открыта.");


	    	dm_zona_prize = 0;
		    dm_zona_dostup = false;
			dm_zona_start = false;
			dm_zona_players = 0;

	    	Message(playerid, ""C_INF"ДМ-Зона закрыта.");
            foreach(Player, i)
			{
				if(Player[playerid][pers_settings][1] == 1)
				{
					f(stringi,"\
					"RED"[Mini-Game]: Вход на ДМ-Зону закрыт.");
					Message(i, stringi);
		        }
		    }
			foreach(Player, i)
			{
			    if(in_mini_game_dm[i] == true)
			    {
			        SetPlayerHealth(i, 0);
			        in_mini_game_dm[i] = false;
					Message(i, ""C_INF"ДМ-Зона закрыта.");
			    }
			}
        }
        case 6:
        {
            if(dm_zona_start == false)
	    		return Message(playerid, "{F31212}• "GRE"ДМ-Зона не открыта.");

	    	if(dm_zona_dostup == true)
    	 		return Message(playerid, "{F31212}• "GRE"ДМ-Зона уже запущена.");

    	    if(dm_zona_players == 0)
    	        return Message(playerid, "{F31212}• "GRE"Недостаточно игроков для старта.");

    	    foreach(Player, i)
			{
			    if(in_mini_game_dm[i] == true)
			    {
					Message(i, ""C_INF"ДМ-Зона запущена.");
					dm_zona_time[i] = 6;
					dm_zona_dostup = true;
			    }
			}
        }
    }
}
case 466:
{
    if(!response) return 1;

    if(dm_zona_start == true)
	    	return Message(playerid, "{F31212}• "GRE"ДМ-Зона уже открыта, редактирование запрещено.");

    if(!strlen(inputtext))
		return ShowPlayerDialogFix(playerid, 466, DSI, !""DGC"[Установка мест]", !""WHT"Введите кол-во мест для входа "YAK"(от 2 до 20)"WHT":", !"Ввод", !"Закрыть");

    if(strfind(inputtext,"%",true)!=-1 || strfind(inputtext,"'",true)!=-1 || strfind(inputtext,"=",true)!=-1 || strfind(inputtext,"-",true)!=-1 || strfind(inputtext,"+",true)!=-1)
	{
		Message(playerid,"{F31212}• "GRE"Обнаружены запрещенные символы.");
		ShowPlayerDialogFix(playerid, 466, DSI, !""DGC"[Установка мест]", !""WHT"Введите кол-во мест для входа "YAK"(от 2 до 20)"WHT":", !"Ввод", !"Закрыть");
		return 1;
	}
	if(strval(inputtext) < 2 || strval(inputtext) > 20)
	    return ShowPlayerDialogFix(playerid, 466, DSI, !""DGC"[Установка мест]", !""WHT"Введите кол-во мест для входа "YAK"(от 2 до 20)"WHT":", !"Ввод", !"Закрыть");

	send(playerid, -1, ""C_INF"Места на ДМ-Зоне установлены, установлено: %d.", strval(inputtext));
	dm_zona_dplayers = strval(inputtext);
}
case 451:
{
    if(!response) return 1;

    if(dm_zona_start == true)
	    	return Message(playerid, "{F31212}• "GRE"ДМ-Зона уже открыта, редактирование запрещено.");

    if(!strlen(inputtext))
		return ShowPlayerDialogFix(playerid, 451, DSI, !""DGC"[Установка входной платы]", !""WHT"Введите входную плату "YAK"(от 50$ до 1500$)"WHT":", !"Ввод", !"Закрыть");

    if(strfind(inputtext,"%",true)!=-1 || strfind(inputtext,"'",true)!=-1 || strfind(inputtext,"=",true)!=-1 || strfind(inputtext,"-",true)!=-1 || strfind(inputtext,"+",true)!=-1)
	{
		Message(playerid,"{F31212}• "GRE"Обнаружены запрещенные символы.");
		ShowPlayerDialogFix(playerid, 451, DSI, !""DGC"[Установка входной платы]", !""WHT"Введите входную плату "YAK"(от 50$ до 1.500$)"WHT":", !"Ввод", !"Закрыть");
		return 1;
	}
	if(strval(inputtext) < 50 || strval(inputtext) > 1500)
	    return ShowPlayerDialogFix(playerid, 451, DSI, !""DGC"", !""WHT"Введите входную плату "YAK"(от 50$ до 1500$)"WHT":", !"Ввод", !"Закрыть"), Message(playerid, "{F31212}• "GRE"Входная плата от 50$ до 1.500$.");

	send(playerid, -1, ""C_INF"Входная плата ДМ-Зоны установлено, входная плата: %s$.", ConvertCash(strval(inputtext)));
	dm_zona_cash = strval(inputtext);
}
case 448:
{
    if(!response) return 1;

    if(dm_zona_start == true)
	    	return Message(playerid, "{F31212}• "GRE"ДМ-Зона уже открыта, редактирование запрещено.");

	switch(listitem)
	{
	    case 0: dm_zona_map = 1, Message(playerid, ""C_INF"Карта ДМ-Зоны изменена на "YAK"RC Battlefield"WHT".");
	    case 1: dm_zona_map = 2, Message(playerid, ""C_INF"Карта ДМ-Зоны изменена на "YAK"LV Warehouse"WHT".");
	    case 2: dm_zona_map = 3, Message(playerid, ""C_INF"Карта ДМ-Зоны изменена на "YAK"LS Atruim"WHT".");
	    case 3: dm_zona_map = 4, Message(playerid, ""C_INF"Карта ДМ-Зоны изменена на "YAK"Warehouse"WHT".");
	    case 4: dm_zona_map = 5, Message(playerid, ""C_INF"Карта ДМ-Зоны изменена на "YAK"Planning dept."WHT".");
	    case 5: dm_zona_map = 6, Message(playerid, ""C_INF"Карта ДМ-Зоны изменена на "YAK"Catigula's bas."WHT".");
	}
}
case 449:
{
    if(!response) return 1;

    if(dm_zona_start == true)
	    	return Message(playerid, "{F31212}• "GRE"ДМ-Зона уже открыта, редактирование запрещено.");

    if(!strlen(inputtext))
		return ShowPlayerDialogFix(playerid, 449, DSI, !""DGC"", !""WHT"Введите "YAK"ID "WHT"оружия в поле ниже:", !"Ввод", !"Закрыть");

    if(strfind(inputtext,"%",true)!=-1 || strfind(inputtext,"'",true)!=-1 || strfind(inputtext,"=",true)!=-1 || strfind(inputtext,"-",true)!=-1 || strfind(inputtext,"+",true)!=-1)
	{
		Message(playerid,"{F31212}• "GRE"Обнаружены запрещенные символы.");
		ShowPlayerDialogFix(playerid, 449, DSI, !""DGC"[Установка оружия]", !""WHT"Введите "YAK"ID "WHT"оружия в поле ниже:", !"Ввод", !"Закрыть");
		return 1;
	}

	send(playerid, -1, ""C_INF"Оружие ДМ-Зоны установлено, оружие: %s[ID: %d]", WeaponNames[strval(inputtext)], strval(inputtext));
	dm_zona_gun = strval(inputtext);
}
В одно секундный таймер: (if(GetPVarInt(i,!"AFK") >= 6) - заменяем на свою проверку на AFK).
PHP:
for(new i; i < MAX_PLAYERS; i++);
{
	if(dm_zona_time[i] != 0 && dm_zona_start == true && in_mini_game_dm[i] == true)
	{
	    dm_zona_time[i] --;
	    new str[15];
	    f(str, "~g~%d", dm_zona_time[i]);
	    GameTextForPlayer(i, str, 1100, 3);
	    PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
	    if(dm_zona_time[i] == 0)
	    {
		    dm_zona_hp[i] = true;
			TogglePlayerControllable(i, 1);
			GameTextForPlayer(i, FixText("~g~GO GO GO"), 1000, 3);
			PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
			SetPlayerHealth(i, 100);
			GivePlayerWeapon(i, dm_zona_gun, 999);
		}
	}
	if(dm_zona_dostup == true && dm_zona_start == true && dm_zona_players < 2)
	{
		new stringi[300];
		if(in_mini_game_dm[i] == true)
		{
	    	Player[i][Money] += dm_zona_prize;

			f(stringi, "{FF6347}[Mini-Game]: %s победил в ДМ-Зоне, он получает вознаграждение: %d$", Player[i][Name], dm_zona_prize);
	    	MessageAll(stringi);

			dm_zona_prize = 0;
			dm_zona_start = false;
			dm_zona_players = 0;
			dm_zona_dostup = false;
			in_mini_game_dm[i] = false;

			SpawnPlayer(i);
		}
	}
}
PHP:
if(in_mini_game_dm[i] == true)
		{
		    if(dm_zona_hp[i] == true)
		    {
		        new Float:HP;
				GetPlayerHealth(i, HP);
				SetPlayerHealth(i, HP-1);
		    }
			if(GetPVarInt(i,!"AFK") >= 6)
			{
				SCM(i, 0xB0306000, "Вы были кикнуты за AFK на развлекательной зоне.");
				Kick(i);
			}
		}
В конец мода:
PHP:
publics Start_MGame_DM()
{
	if(dm_zona_dostup == false && dm_zona_start == true)
	{
	    if(dm_zona_players < 2)
	    {
	        foreach(Player, i)
			{
				Message(i, ""RED"[Mini-Game]: ДМ-Зона закрыта из-за недостаточного количества участников.");
				if(in_mini_game_dm[i] == true)
			    {
			        SetPlayerHealth(i, 0);
			        in_mini_game_dm[i] = false;
					Message(i, ""C_INF"ДМ-Зона закрыта.");
			    }
		    }
			dm_zona_prize = 0;
		    dm_zona_dostup = false;
			dm_zona_start = false;
			dm_zona_players = 0;
	    }
	    else
	    {
	        foreach(Player, i)
	        {
				if(in_mini_game_dm[i] == true)
				{
				    dm_zona_time[i] = 6;
				    dm_zona_dostup = true;
				}
	        }
	    }
	}
	return 1;
}
PHP:
publics show_dmtop(playerid)
{
	new
	    rows,
	    name_player[32],
	    kill_player,
	    st[600],
	    st1[1000]
	;

	cache_get_row_count(rows);
    if(rows)
	{
	    for (new i = 0; i < rows; i ++)
	    {
	        cache_get_value_name(i, "Name", name_player, 32);
	        cache_get_value_name_int(i, "dm_zona_kill", kill_player);
	        f(st, "\
	        "YAK"%d) "WHT"%s "YAK"(Убийств: %s).\n", i + 1, name_player, kill_player);
	        strcat(st1,st,sizeof(st1));
	    }
	    f(st, "\
        "WHT"\nВы убили: "YAK"%s.", Player[playerid][dm_zona_kill]);
        strcat(st1,st,sizeof(st1));

	    ShowPlayerDialogFix(playerid, 1502, DSM, !""DGC"[Топ убийств на /dmzona]", st1, !"Закрыть", !"");

	}
	return 1;
}
 
Сверху Снизу