**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;
}
Последнее редактирование:
