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

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

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

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

Система Выговоров

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

**Maksim Romano**

Новичок
PHP:
Приветствую уважаемые пользователи группы pawno-info.ru, я решил выложить систему выговоров, на командном процессоре CMD.
Не забудьте поблагодарить.:bu:
PHP:
Итак сначала добавляем в enum pInfo
pVig,
Далее ищем /members и туда добавляем Выговоров %d/3  PlayerInfo[i][pVig]
PHP:
Команда для снятия выговоров.
CMD:unvigovor(playerid,params[])
{
	new giveplayerid;
	if(!CanVigPlayer(playerid)) return SCM(playerid, COLOR_GREY,"Вы не зам и не лидер.");
	if(sscanf(params,"d",giveplayerid)) return SCM(playerid, COLOR_WHITE, "Введитейте: /unvigovor [ид]");
	if(!IsPlayerConnected(giveplayerid)) return SCM(playerid,COLOR_WHITE,"Этого игрока нет на сервере!");
	if(giveplayerid == playerid) return SCM(playerid, -1, "Ошибка: Вы не можете снять выговор себе.");
	if(PlayerInfo[playerid][pMember] != PlayerInfo[giveplayerid][pMember]) return SCM(playerid, COLOR_WHITE, "Ошибка: Человек не в вашей организации!");
	if(PlayerInfo[giveplayerid][pRang] >= PlayerInfo[playerid][pRang]) return SCM(playerid, COLOR_WHITE, "Ошибка: Вы не можете снять выговор лидеру");
	GetPlayerName(playerid, sn, sizeof(sn));
	GetPlayerName(giveplayerid, gp, sizeof(gp));
	if(PlayerInfo[giveplayerid][pVig] == 0)
	{
        SCM(playerid, COLOR_WHITE, "Ошибка: У игрока нет выговоров");
	}
	else if(PlayerInfo[giveplayerid][pVig] == 1)
	{
		format(nsa, sizeof(nsa), "%s[%d] снял(а) выговор с %s[%d].",sn,playerid,gp,giveplayerid);
		SFM(PlayerInfo[playerid][pMember], COLOR_ORANGE, nsa);
		PlayerInfo[giveplayerid][pVig] = 0;
	}
	else if(PlayerInfo[giveplayerid][pVig] == 2)
	{
		format(nsa, sizeof(nsa), "%s[%d] снял(а) выговор с %s[%d].",sn,playerid,gp,giveplayerid);
		SFM(PlayerInfo[playerid][pMember], COLOR_ORANGE, nsa);
		PlayerInfo[giveplayerid][pVig] = 1;
	}
	return true;
}
PHP:
CMD:avigovor(playerid,params[])
{

	new giveplayerid;
	new reason[32];
	if(PlayerInfo[playerid][pAdmin] < 5) return SCM(playerid, COLOR_GREY,"Вам недоступна данная функция!");
	if(sscanf(params,"ds",giveplayerid,  reason)) return SCM(playerid, COLOR_WHITE, "Введитейте: /avigovor [ид] [причина]");
	if(!IsPlayerConnected(giveplayerid)) return SCM(playerid,COLOR_WHITE,"Этого игрока нет на сервере!");
	GetPlayerName(playerid, sn, sizeof(sn));
	GetPlayerName(giveplayerid, gp, sizeof(gp));
	if(PlayerInfo[giveplayerid][pVig] == 0)
	{
		format(nsa, sizeof(nsa),"Вы получили 1/3 выговор от администратора %s[%d]. Причина: {FFFFFF}%s",sn,playerid, reason);
     	SCM(giveplayerid,COLOR_ORANGE,nsa);
		format(nsa, sizeof(nsa),"Вы выдали %s[%d] 1/3 выговор. Причина: {FFFFFF}%s",gp,giveplayerid, reason);
     	SCM(playerid,COLOR_ORANGE,nsa);
		PlayerInfo[giveplayerid][pVig] = 1;
	}
	else if(PlayerInfo[giveplayerid][pVig] == 1)
	{
		format(nsa, sizeof(nsa),"Вы получили 2/3 выговор от администратора %s[%d]. Причина: {FFFFFF}%s",sn,playerid, reason);
     	SCM(giveplayerid,COLOR_ORANGE,nsa);
		format(nsa, sizeof(nsa),"Вы выдали %s[%d] 2/3 выговор. Причина: {FFFFFF}%s",gp,giveplayerid, reason);
     	SCM(playerid,COLOR_ORANGE,nsa);
		PlayerInfo[giveplayerid][pVig] = 2;
	}
	else if(PlayerInfo[giveplayerid][pVig] == 2)
	{
		format(nsa, sizeof(nsa),"Вы получили 3/3 выговор от администратора %s[%d]. Причина: {FFFFFF}%s",sn,playerid, reason);
     	SCM(giveplayerid,COLOR_ORANGE,nsa);
		format(nsa, sizeof(nsa),"Вы выдали %s[%d] 3/3 выговор. Причина: {FFFFFF}%s",gp,giveplayerid, reason);
     	SCM(playerid,COLOR_ORANGE,nsa);
		PlayerInfo[giveplayerid][pVig] = 0;
		PlayerInfo[giveplayerid][pRang] = 0;
		PlayerInfo[giveplayerid][pMember] = 0;
		PlayerInfo[giveplayerid][pLeader] = 0;
		PlayerInfo[giveplayerid][pHourFractions] = 0;
		PlayerInfo[playerid][pCheck] = 0;
		ResetPlayerWeaponEx(giveplayerid);
		SetPlayerSkin(giveplayerid, PlayerInfo[giveplayerid][pChar]);
		SetPlayerColor(giveplayerid, TEAM_HIT_COLOR);
	}
	return true;
}
PHP:
CMD:aunvigovor(playerid,params[])
{
	new giveplayerid;
	if(PlayerInfo[playerid][pAdmin] < 5) return SCM(playerid, COLOR_GREY,"Вам недоступна данная функция!");
	if(sscanf(params,"d",giveplayerid)) return SCM(playerid, COLOR_WHITE, "Введитейте: /aunvigovor [ид]");
	if(!IsPlayerConnected(giveplayerid)) return SCM(playerid,COLOR_WHITE,"Этого игрока нет на сервере!");
	GetPlayerName(playerid, sn, sizeof(sn));
	GetPlayerName(giveplayerid, gp, sizeof(gp));
	if(PlayerInfo[giveplayerid][pVig] == 0)
	{
        SCM(playerid, COLOR_WHITE, "Ошибка: У игрока нет выговоров");
	}
	else if(PlayerInfo[giveplayerid][pVig] == 1)
	{
		format(nsa, sizeof(nsa),"Администратор %s[%d] снял вам выговор",sn,playerid);
     	SCM(giveplayerid,COLOR_ORANGE,nsa);
		format(nsa, sizeof(nsa),"Вы сняли %s[%d] выговор.",gp,giveplayerid, sn,playerid);
     	SCM(playerid,COLOR_ORANGE,nsa);
		PlayerInfo[giveplayerid][pVig] = 0;
	}
	else if(PlayerInfo[giveplayerid][pVig] == 2)
	{
		format(nsa, sizeof(nsa),"Администратор %s[%d] снял вам выговор.",sn,playerid);
     	SCM(giveplayerid,COLOR_ORANGE,nsa);
		format(nsa, sizeof(nsa),"Вы сняли %s[%d] выговор.",gp,giveplayerid, sn,playerid);
     	SCM(playerid,COLOR_ORANGE,nsa);
		PlayerInfo[giveplayerid][pVig] = 1;
	}
	return true;
}
PHP:
CMD:vigovor(playerid,params[])
{

	new giveplayerid;
	new reason[32];
	if(!CanVigPlayer(playerid)) return SCM(playerid, COLOR_GREY,"Вам недоступна данная функция!");
	if(sscanf(params,"ds",giveplayerid,  reason)) return SCM(playerid, COLOR_WHITE, "Введитейте: /vigovor [ид] [причина]");
	if(!IsPlayerConnected(giveplayerid)) return SCM(playerid,COLOR_WHITE,"Этого игрока нет на сервере!");
	if(giveplayerid == playerid) return SCM(playerid, -1, "Ошибка: Вы не можете дать себе выговор.");
    if(PlayerInfo[playerid][pMember] != PlayerInfo[giveplayerid][pMember]) return SCM(playerid, COLOR_WHITE, "Ошибка: Человек не в вашей организации!");	//if(PlayerInfo[playerid][pMember] != PlayerInfo[giveplayerid][pMember]) return SCM(playerid, COLOR_WHITE, "Ошибка: Человек не в вашей организации!");
	if(PlayerInfo[giveplayerid][pRang] >= PlayerInfo[playerid][pRang]) return SCM(playerid, COLOR_WHITE, "Ошибка: Вы не можете дать выговор лидеру");
	GetPlayerName(playerid, sn, sizeof(sn));
	GetPlayerName(giveplayerid, gp, sizeof(gp));
	if(PlayerInfo[giveplayerid][pVig] == 0)
	{
		format(nsa, sizeof(nsa), "%s[%d] получил(а) 1/3 выговор от %s[%d]. Причина: {FFFFFF}%s",gp,giveplayerid, sn,playerid, reason);
		SFM(PlayerInfo[playerid][pMember], COLOR_ORANGE, nsa);
		PlayerInfo[giveplayerid][pVig] = 1;
	}
	else if(PlayerInfo[giveplayerid][pVig] == 1)
	{
		format(nsa, sizeof(nsa), "%s[%d] получил(а) 2/3 выговор от %s[%d]. Причина: {FFFFFF}%s",gp,giveplayerid, sn,playerid, reason);
		SFM(PlayerInfo[playerid][pMember], COLOR_ORANGE, nsa);
		PlayerInfo[giveplayerid][pVig] = 2;
	}
	else if(PlayerInfo[giveplayerid][pVig] == 2)
	{
		format(nsa, sizeof(nsa), "%s[%d] получил(а) 3/3 выговор от %s[%d]. Причина: {FFFFFF}%s",gp,giveplayerid, sn,playerid, reason);
		SFM(PlayerInfo[playerid][pMember], COLOR_ORANGE, nsa);
		PlayerInfo[giveplayerid][pVig] = 0;
		PlayerInfo[giveplayerid][pRang] = 0;
		PlayerInfo[giveplayerid][pMember] = 0;
		PlayerInfo[giveplayerid][pLeader] = 0;
		PlayerInfo[giveplayerid][pHourFractions] = 0;
		PlayerInfo[playerid][pCheck] = 0;
		ResetPlayerWeaponEx(giveplayerid);
		SetPlayerSkin(giveplayerid, PlayerInfo[giveplayerid][pChar]);
		SetPlayerColor(giveplayerid, TEAM_HIT_COLOR);
	}
	return true;
}
PHP:
Далее добавляем в команду /invite, /uninvite, /makeleader
PlayerInfo[giveplayerid][pVig] = 0;
PHP:
Далее в загрузку аккаунта обычно это отдельный паблик..
PlayerInfo[playerid][pVig] = 0;
PHP:
В Конце мода создаем отдельный Stock.
stock CanVigPlayer(playerid)
{
	new rang = PlayerInfo[playerid][pRang];
	switch(PlayerInfo[playerid][pMember])
	{
	case TEAM_MAYOR:
		{
			switch(rang)
			{
			case 7:return true;
			}
		}
	case TEAM_FBI:
		{
			switch(rang)
			{
			case 10:return true;
			case 9:return true;
			}
		}
	case TEAM_LSPD..TEAM_LVPD:
		{
			switch(rang)
			{
			case 15:return true;
			case 14:return true;
			}
		}
	case TEAM_LVA..TEAM_LSA:
		{
			switch(rang)
			{
			case 16:return true;
			case 15:return true;
			}
		}
	case TEAM_NEWS:
		{
			switch(rang)
			{
			case 10:return true;
			case 9:return true;
			}
		}
	case TEAM_MM..TEAM_SM:
		{
			switch(rang)
			{
			case 10:return true;
			case 9:return true;
			}
		}
	case TEAM_MCHS:
		{
			switch(rang)
			{
			case 10: return true;
			case 9: return true;
			}
		}
	case TEAM_SCHOOL:
		{
			switch(rang)
			{
			case 10:return true;
			case 9:return true;
			}
		}
	case TEAM_GROVE..TEAM_RIFA:
		{
			switch(rang)
			{
			case 10:return true;
			case 9:return true;
			}
		}
	case TEAM_KAZINO:
		{
			switch(rang)
			{
			case 7:return true;
			case 6:return true;
			}
		}
	}
	return false;
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу