Jackson_Clark
Новичок
Всем привет, выкладываю более-менее оптимизированные команды /r, /d, и /f на DC_CMD + sscanf. Приступим)
define:
PHP:
#define COLOR_LIGHTRED 0xFF6347AA // Цвет
#define TEAM_AZTECAS_COLOR 0x01FCFFC8 // Цвет
#define GPN GetPlayerName(playerid, playername, sizeof(playername)); // Дефайн для получение никнейма игрока
#define SCM SendClientMessage // Дефайн функции отправки сообщений
PHP:
new stringcmd[128];// Глобальная переменная
Вот команда /r:
PHP:
CMD:r(playerid,params[])
{
GPN
if(PlayerInfo[playerid][pMember] == 0) return SCM(playerid, COLOR_LIGHTRED, "Вы не состоите в гос.фракции!");
if(sscanf(params,"s[128]", params[0])) return SCM(playerid, -1, "Используй: /r [текст]");
if(PlayerInfo[playerid][pMuted] == 1) return SCM(playerid, COLOR_LIGHTRED, "У вас бан чата!");
new rangz[20];
GetPVarString(playerid,"RangName",rangz,20);
if(FormaFrac[playerid] > 0)
{
format(stringcmd, sizeof(stringcmd), "[R] %s %s[%d]: %s",rangz ,playername, playerid, params[0]);
SendRadioMessage(FormaFrac[playerid], 0x78DB36FF, stringcmd);
return true;
}
else SCM(playerid, COLOR_RED, "Вы не в форме!");
return 1;
}
PHP:
CMD:d(playerid,params[])
{
GPN
if(PlayerInfo[playerid][pMember] == 0) return SCM(playerid, COLOR_LIGHTRED, "Вы не состоите в гос.фракции!");
if(sscanf(params,"s[128]", params[0])) return SCM(playerid, -1, "Используй: /d [текст]");
if(PlayerInfo[playerid][pMuted] == 1) return SCM(playerid, COLOR_LIGHTRED, "У вас бан чата!");
if(PlayerInfo[playerid][pRank] < 1) return SCM(playerid, COLOR_GREY, "Вы не уполномочены писать в депортамент");
new rangz[20];
GetPVarString(playerid,"RangName",rangz,20);
if(FormaFrac[playerid] > 0)
{
format(stringcmd, sizeof(stringcmd), "[%s] %s %s[%d]: %s",Fraction[PlayerInfo[playerid][pMember]] ,rangz ,playername, playerid, params[0]);
SendTeamMessage(1, 0x4E95CEFF, stringcmd);
}
else SCM(playerid, COLOR_RED, "Вы не в форме!");
return 1;
}
PHP:
CMD:f(playerid,params[])
{
if(PlayerInfo[playerid][pMuted] == 1) return SCM(playerid, COLOR_LIGHTRED, "У Вас бан чата!");
GPN
if(sscanf(params,"s[128]", params[0])) return SCM(playerid, -1, "Используй: /f [текст]");
new rangz[20];
GetPVarString(playerid,"RangName",rangz,20);
if(PlayerInfo[playerid][pMember] >= 1)
{
switch(PlayerInfo[playerid][pMember])
{
case 5,6,8,9,12,13,14,15,17,18,23,26:
{
format(stringcmd, sizeof(stringcmd), "[F] %s %s: %s",rangz ,playername, params[0]);
SendFamilyMessage(PlayerInfo[playerid][pMember], TEAM_AZTECAS_COLOR, stringcmd);
}
case 16,20,11:
{
if(FormaFrac[playerid] == PlayerInfo[playerid][pMember])
format(stringcmd, sizeof(stringcmd), "[F] %s %s: %s", rangz ,playername, params[0]);
SendFamilyMessage(PlayerInfo[playerid][pMember], TEAM_AZTECAS_COLOR, stringcmd);
}
}
return true;
}
else
{
SCM(playerid, COLOR_GREY, "Вы не член фракции");
}
return 1;
}
Сток с рангами: (Данный сток может пригодится везде, например в /d /f, также для статистики игрока)
PHP:
stock rangall(playerid)
{
new rangz[20];
switch(PlayerInfo[playerid][pMember])
{
case 0: rangz = "Нет";
case 1,10,21,27:
{
switch(PlayerInfo[playerid][pRank])
{
case 10: rangz = "Генерал";
case 9: rangz = "Полковник";
case 8: rangz = "Подполковник";
case 7: rangz = "Майор";
case 6: rangz = "Капитан";
case 5: rangz = "Лейтенант";
case 4: rangz = "Прапорщик";
case 3: rangz = "Ст.Сержант";
case 2: rangz = "Сержант";
case 1: rangz = "Кадет";
}
}
case 2:
{
switch(PlayerInfo[playerid][pRank])
{
case 10: rangz = "Директор ФБР";
case 9: rangz = "Зам. директора";
case 8: rangz = "Инспектор";
case 7: rangz = "Глава CID";
case 6: rangz = "Агент CID";
case 5: rangz = "Глава GNK";
case 4: rangz = "Агент GNK";
case 3: rangz = "Глава CJIS";
case 2: rangz = "Агент CJIS";
case 1: rangz = "Стажёр";
}
}
case 3,19,25:
{
switch(PlayerInfo[playerid][pRank])
{
case 10: rangz = "Генерал";
case 9: rangz = "Полковник";
case 8: rangz = "Подполковник";
case 7: rangz = "Майор";
case 6: rangz = "Капитан";
case 5: rangz = "Лейтенант";
case 4: rangz = "Прапорщик";
case 3: rangz = "Старшина";
case 2: rangz = "Сержант";
case 1: rangz = "Ефрейтор";
}
}
case 4,22,24:
{
switch(PlayerInfo[playerid][pRank])
{
case 10: rangz = "Глав. врач";
case 9: rangz = "Зам. Глав. врача";
case 8: rangz = "Терапевт";
case 7: rangz = "Хирург";
case 6: rangz = "Педиатр";
case 5: rangz = "Санитар";
case 4: rangz = "Интерн";
case 3: rangz = "Дежурный";
case 2: rangz = "Стажер";
case 1: rangz = "Практикант";
}
}
case 5:
{
switch(PlayerInfo[playerid][pRank])
{
case 10: rangz = "Дон";
case 9: rangz = "Консильери";
case 8: rangz = "Младший Босс";
case 7: rangz = "Капо";
case 6: rangz = "Сотто-Капо";
case 5: rangz = "Боец";
case 4: rangz = "Солдато";
case 3: rangz = "Солдатав";
case 2: rangz = "Ассосиато";
case 1: rangz = "Новицио";
}
}
case 6:
{
switch(PlayerInfo[playerid][pRank])
{
case 10: rangz = "Кумитё";
case 9: rangz = "Оябун-кобун";
case 8: rangz = "Cайко комон";
case 7: rangz = "Оядзи";
case 6: rangz = "Камбу";
case 5: rangz = "Со-хобунтё";
case 4: rangz = "Вакагасира";
case 3: rangz = "Сятейгасира";
case 2: rangz = "Кёдай";
case 1: rangz = "Вакасю";
}
}
case 7:
{
switch(PlayerInfo[playerid][pRank])
{
case 10: rangz = "Мэр";
case 9: rangz = "Зам.Мэра";
case 8: rangz = "Министр";
case 7: rangz = "Дипломат";
case 6: rangz = "Нач.Охраны";
case 5: rangz = "Адвокат";
case 4: rangz = "Секретарь";
case 3: rangz = "Зам.Секретаря";
case 2: rangz = "Охранник";
case 1: rangz = "Водитель";
}
}
case 8:
{
switch(PlayerInfo[playerid][pRank])
{
case 10: rangz = "Король улиц";
case 9: rangz = "Король дрифта";
case 8: rangz = "Король драга";
case 7: rangz = "Гонщик";
case 6: rangz = "Профессионал";
case 5: rangz = "Опытный Стритрейсер";
case 4: rangz = "Стритрейсер";
case 3: rangz = "Водила";
case 2: rangz = "Новичек";
case 1: rangz = "Изгой";
}
}
case 9,16,20:
{
switch(PlayerInfo[playerid][pRank])
{
case 10: rangz = "Главный редактор";
case 9: rangz = "Зам.Гл.Редактора";
case 8: rangz = "Журналист";
case 7: rangz = "Писатель";
case 6: rangz = "Ст.Редактор";
case 5: rangz = "Редактор";
case 4: rangz = "Видео-редактор";
case 3: rangz = "Фотограф";
case 2: rangz = "Папарацци";
case 1: rangz = "Стажер";
}
}
case 11:
{
switch(PlayerInfo[playerid][pRank])
{
case 10: rangz = "Управляющий";
case 9: rangz = "Директор";
case 8: rangz = "Ст. Менеджер";
case 7: rangz = "Мл. Менеджер";
case 6: rangz = "Кординатор";
case 5: rangz = "Ст. Инструктор";
case 4: rangz = "Инструктор";
case 3: rangz = "Экзаменатор";
case 2: rangz = "Стажер";
case 1: rangz = "Практикант";
}
}
case 12:
{
switch(PlayerInfo[playerid][pRank])
{
case 10: rangz = "Биг Вилли";
case 9: rangz = "Райч Нига";
case 8: rangz = "Фолкс";
case 7: rangz = "Федерал Блок";
case 6: rangz = "Гангстер";
case 5: rangz = "Ап Бро";
case 4: rangz = "Гун брo";
case 3: rangz = "Крэкер";
case 2: rangz = "Младший Нига";
case 1: rangz = "Блайд";
}
}
case 13:
{
switch(PlayerInfo[playerid][pRank])
{
case 10: rangz = "Падре";
case 9: rangz = "Падрино";
case 8: rangz = "Лидер V.E.G";
case 7: rangz = "Асесор";
case 6: rangz = "Авторитарио";
case 5: rangz = "Асестно";
case 4: rangz = "Амиго";
case 3: rangz = "Эстимадо";
case 2: rangz = "Сольвадо";
case 1: rangz = "Новато";
}
}
case 14:
{
switch(PlayerInfo[playerid][pRank])
{
case 10: rangz = "Авторитет";
case 9: rangz = "Вор в законе";
case 8: rangz = "Вор";
case 7: rangz = "Браток";
case 6: rangz = "Свояк";
case 5: rangz = "Блатной";
case 4: rangz = "Барыга";
case 3: rangz = "Бык";
case 2: rangz = "Фраер";
case 1: rangz = "Шнырь";
}
}
case 15:
{
switch(PlayerInfo[playerid][pRank])
{
case 10: rangz = "Мэд Дог";
case 9: rangz = "Легенда";
case 8: rangz = "Де Кинг";
case 7: rangz = "Мобста";
case 6: rangz = "О.Г.";
case 5: rangz = "Гангста";
case 4: rangz = "Юонг";
case 3: rangz = "Килла";
case 2: rangz = "Хастла";
case 1: rangz = "плэйя";
}
}
case 17:
{
switch(PlayerInfo[playerid][pRank])
{
case 10: rangz = "Падре";
case 9: rangz = "Нестро";
case 8: rangz = "Тесосеро";
case 7: rangz = "Инвасор";
case 6: rangz = "Сабио";
case 5: rangz = "Мирандо";
case 4: rangz = "Лас Геррас";
case 3: rangz = "Геттор";
case 2: rangz = "Тирадор";
case 1: rangz = "Перро";
}
}
case 18:
{
switch(PlayerInfo[playerid][pRank])
{
case 10: rangz = "Падре";
case 9: rangz = "Аджунто";
case 8: rangz = "Ауториадад";
case 7: rangz = "Бандидо";
case 6: rangz = "Эрмано";
case 5: rangz = "Джуниор";
case 4: rangz = "Мачо";
case 3: rangz = "Амиго";
case 2: rangz = "Ладрон";
case 1: rangz = "Новато";
}
}
case 23:
{
switch(PlayerInfo[playerid][pRank])
{
case 10: rangz = "Президент";
case 9: rangz = "Вице-Президент";
case 8: rangz = "Treasurer";
case 7: rangz = "Sergeant-at-arms";
case 6: rangz = "Road Captain";
case 5: rangz = "Angel";
case 4: rangz = "Member";
case 3: rangz = "Prospect";
case 2: rangz = "Hang Around";
case 1: rangz = "Support";
}
}
}
SetPVarString(playerid,"RangName",rangz);
return true;
}
[HR][/HR]
Может кому-то нужен сток SendRadioMessage, вот он:
PHP:
stock SendRadioMessage(member, color, string[])
{
foreach(new i : Player)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pMember] == member)
{
SCM(i, color, string);
}
}
}
}
PHP:
stock SendFamilyMessage(family, color, string[])
{
foreach(new i : Player)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pMember] == family)
{
SCM(i, color, string);
}
}
}
}
Последнее редактирование:
