Lazik16
Умник
И так, всем привет. В этом уроке я расскажу как можно неплохо оптимизировать ранги в моде RLS.
Первое что мы сделаем это ищем: Stock ShowStats
Данный Stock выполняет функцию. Например, мы показываем игроку паспорт. У него высвечивается ваш уровень, ранг, розыск и т.д.
После того как мы нашли его, ищем сами ранги. Они могут выглядеть примерно так:
Теперь мы удаляем их полностью. И заместо этого ставим просто: Rankplayer(targetid);
Далее ищем команду /f или /family (Чат Банд/News/Мафий и т.п.).
Заменяем команду на эту:
Далее ищем команду /r (Чат ПД/Армий/ФБР).
Заменяем ее на эту:
Теперь ищем команду /d /departamets (Чат Департамент). И заменяем на этот:
И теперь самое главное. Вставляем Stock для вызова функции Rankplayer(playerid);
Ставим в конец мода:
Если у вас в моде нет "RankText" то ко всем New добавим:
Вот и все. Мод оптимизирован примерно на -1000 строк.
Вроде ничего не забыл. Надеюсь объяснил понято.
Внимание! в моде могут быть Error's из за несовпадения enum pInfo или переменных. (Сделайте под свой мод).
Первое что мы сделаем это ищем: Stock ShowStats
Данный Stock выполняет функцию. Например, мы показываем игроку паспорт. У него высвечивается ваш уровень, ранг, розыск и т.д.
После того как мы нашли его, ищем сами ранги. Они могут выглядеть примерно так:
PHP:
new rangz[20];
switch(PlayerInfo[targetid][pMember])
{
case 0: rangz = " ";
case 1, 10, 21:
{
switch(PlayerInfo[targetid][pRank])
{
case 1: rangz = "Кадет";
case 2: rangz = "Офицер";
case 3: rangz = "Мл. Сержант";
case 4: rangz = "Сержант";
case 5: rangz = "Ст. Сержант";
case 6: rangz = "Прапорщик";
case 7: rangz = "Ст. Прапорщик";
case 8: rangz = "Мл. Лейтенант";
case 9: rangz = "Лейтенант";
case 10: rangz = "Ст. Лейтенант";
case 11: rangz = "Капитан";
case 12: rangz = "Майор";
case 13: rangz = "Подполковник";
case 14: rangz = "Полковник";
case 15: rangz = "Шериф";
}
}
case 2:
{
switch(PlayerInfo[targetid][pRank])
{
case 1: rangz = "Стажёр";
case 2: rangz = "Агент";
case 3: rangz = "Старший агент";
case 4: rangz = "Специальный агент";
case 5: rangz = "Начальник секции";
case 6: rangz = "Инспектор";
case 7: rangz = "Зам. директора";
case 8: rangz = "Директор";
}
}
case 3, 19:
{
switch(PlayerInfo[targetid][pRank])
{
case 1: rangz = "Рядовой";
case 2: rangz = "Ефрейтор";
case 3: rangz = "Мл. Сержант";
case 4: rangz = "Сержант";
case 5: rangz = "Ст. Сержант";
case 6: rangz = "Старшина";
case 7: rangz = "Прапорщик";
case 8: rangz = "Старший прапорщик";
case 9: rangz = "Младший лейтенант";
case 10: rangz = "Лейтенант";
case 11: rangz = "Старший лейтенант";
case 12: rangz = "Капитан";
case 13: rangz = "Майор";
case 14: rangz = "Подполковник";
case 15: rangz = "Полковник";
case 16: rangz = "Генерал";
}
}
case 4, 22, 33:
{
switch(PlayerInfo[targetid][pRank])
{
case 1: rangz = "Практикант";
case 2: rangz = "Стажёр";
case 3: rangz = "Интерн";
case 4: rangz = "Санитар";
case 5: rangz = "Педиатр";
case 6: rangz = "Хирург";
case 7: rangz = "Терапевт";
case 8: rangz = "Глав. врач";
}
}
case 5:
{
switch(PlayerInfo[targetid][pRank])
{
case 1: rangz = "Новицио";
case 2: rangz = "Ассосиато";
case 3: rangz = "Сомбаттенте";
case 4: rangz = "Солдато";
case 5: rangz = "Боец";
case 6: rangz = "Сотто-Капо";
case 7: rangz = "Капо";
case 8: rangz = "Младший Босс";
case 9: rangz = "Консильери";
case 10: rangz = "Дон";
}
}
case 6:
{
switch(PlayerInfo[targetid][pRank])
{
case 1: rangz = "Вакасю";
case 2: rangz = "Кёдай";
case 3: rangz = "Сятейгасира";
case 4: rangz = "Вакагасира";
case 5: rangz = "Со-хобунтё";
case 6: rangz = "Камбу";
case 7: rangz = "Оядзи";
case 8: rangz = "Cайко комон";
case 9: rangz = "Оябун-кобун";
case 10: rangz = "Кумитё";
}
}
case 7:
{
switch(PlayerInfo[targetid][pRank])
{
case 1: rangz = "Секретарь";
case 2: rangz = "Адвокат";
case 3: rangz = "Охранник";
case 4: rangz = "Начальник охраны";
case 5: rangz = "Зам. мэра";
case 6: rangz = "Мэр";
}
}
case 8:
{
switch(PlayerInfo[targetid][pRank])
{
case 1: rangz = "Крупье";
case 2: rangz = "Менеджер";
}
}
case 9, 16, 20:
{
switch(PlayerInfo[targetid][pRank])
{
case 1: rangz = "Стажер";
case 2: rangz = "Фотограф";
case 3: rangz = "Папарацци";
case 4: rangz = "Журналист";
case 5: rangz = "Редактор";
case 6: rangz = "Главный редактор";
}
}
case 11:
{
switch(PlayerInfo[targetid][pRank])
{
case 1: rangz = "Стажёр";
case 2: rangz = "Экзаменатор";
case 3: rangz = "Инструктор";
case 4: rangz = "Кординатор";
case 5: rangz = "Мл. менеджер";
case 6: rangz = "Старший менеджер";
case 7: rangz = "Директор";
case 8: rangz = "Управляющий";
}
}
case 12:
{
switch(PlayerInfo[targetid][pRank])
{
case 1: rangz = "Блайд";
case 2: rangz = "Младший Нига";
case 3: rangz = "Крэкер";
case 4: rangz = "Гун брo";
case 5: rangz = "Ап Бро";
case 6: rangz = "Гангстер";
case 7: rangz = "Федерал Блок";
case 8: rangz = "Фолкс";
case 9: rangz = "Райч Нига";
case 10: rangz = "Биг Вилли";
}
}
case 13:
{
switch(PlayerInfo[targetid][pRank])
{
case 1: rangz = "Новато";
case 2: rangz = "Криминаль";
case 3: rangz = "Сольдадо";
case 4: rangz = "Эстимадо";
case 5: rangz = "Амиго";
case 6: rangz = "Асесино";
case 7: rangz = "Авторитарио";
case 8: rangz = "Асесор";
case 9: rangz = "Лидер V.E.G.";
case 10: rangz = "Падрино";
case 11: rangz = "Падре";
}
}
case 14:
{
switch(PlayerInfo[targetid][pRank])
{
case 1: rangz = "Шнырь";
case 2: rangz = "Фраер";
case 3: rangz = "Бык";
case 4: rangz = "Барыга";
case 5: rangz = "Блатной";
case 6: rangz = "Свояк";
case 7: rangz = "Браток";
case 8: rangz = "Вор";
case 9: rangz = "Вор в законе";
case 10: rangz = "Авторитет";
}
}
case 15:
{
switch(PlayerInfo[targetid][pRank])
{
case 1: rangz = "Плэйя";
case 2: rangz = "Хастла";
case 3: rangz = "Килла";
case 4: rangz = "Юонг";
case 5: rangz = "Гангста";
case 6: rangz = "О.Г.";
case 7: rangz = "Мобста";
case 8: rangz = "Де Кинг";
case 9: rangz = "Легенд";
case 10: rangz = "Мэд Дог";
}
}
case 17:
{
switch(PlayerInfo[targetid][pRank])
{
case 1: rangz = "Перро";
case 2: rangz = "Тирадор";
case 3: rangz = "Геттор";
case 4: rangz = "Лас Геррас";
case 5: rangz = "Мирандо";
case 6: rangz = "Сабио";
case 7: rangz = "Инвасор";
case 8: rangz = "Тесосеро";
case 9: rangz = "Нестро";
case 10: rangz = "Падре";
}
}
case 18:
{
switch(PlayerInfo[targetid][pRank])
{
case 1: rangz = "Новато";
case 2: rangz = "Ладрон";
case 3: rangz = "Амиго";
case 4: rangz = "Мачo";
case 5: rangz = "Джуниор";
case 6: rangz = "Эрмано";
case 7: rangz = "Бандидо";
case 8: rangz = "Ауторидад";
case 9: rangz = "Аджунто";
case 10: rangz = "Падре";
}
}
case 23..32:
{
switch(PlayerInfo[targetid][pRank])
{
case 1: rangz = "Support";
case 2: rangz = "Hang Around";
case 3: rangz = "Prospect";
case 4: rangz = "Member";
case 5: rangz = "Road Captain";
case 6: rangz = "Sergeant-at-arms";
case 7: rangz = "Treasurer";
case 8: rangz = "Вице-Президент";
case 9: rangz = "Президент";
}
}
}
Теперь мы удаляем их полностью. И заместо этого ставим просто: Rankplayer(targetid);
Далее ищем команду /f или /family (Чат Банд/News/Мафий и т.п.).
Заменяем команду на эту:
PHP:
CMD:family(playerid, params[])
{
if(PlayerInfo[playerid][pLogin] == 0) return true;
if(!IsPlayerConnected(playerid)) return true;
if(!IsAGang(playerid) && !ISAMAFIA(playerid) && PlayerInfo[playerid][pMember] != 9 && PlayerInfo[playerid][pMember] != 16 && PlayerInfo[playerid][pMember] != 20 && PlayerInfo[playerid][pMember] != 23 && PlayerInfo[playerid][pMember] != 8 && PlayerInfo[playerid][pMember] != 11) return SCM(playerid, COLOR_GREY, "Вам недоступен этот чат!");
if(PlayerInfo[playerid][pMuted] == 1) return SCM(playerid, COLOR_LIGHTRED, "У Вас бан чата!");
if(gag[playerid] == 1) return SCM(playerid, COLOR_LIGHTRED, "У Вас кляп, вы не можете говорить!");
if(sscanf(params, "s[64]", params[0])) return SCM(playerid, COLOR_WHITE, " Введите: (/f)amily [текст]");
Rankplayer(playerid);
format(strings, 128, "[F] %s %s: %s", RankText[playerid], PlayerInfo[playerid][pName], params[0]);
SendFamilyMessage(PlayerInfo[playerid][pMember], TEAM_AZTECAS_COLOR, strings);
SendSpyMessage(PlayerInfo[playerid][pMember], COLOR_ALLDEPT, strings);
return true;
}
ALT:family:f;
Заменяем ее на эту:
PHP:
CMD:r(playerid, params[])
{
if(PlayerInfo[playerid][pLogin] == 0) return true;
if(!IsPlayerConnected(playerid)) return true;
if(!IsACop(playerid) && !IsAArm(playerid) && !IsAMayor(playerid) && !IsAMedic(playerid)) return SCM(playerid, COLOR_GREY, "Вам недоступен этот чат!");
if(FormaFrac[playerid] == 0) return SCM(playerid, COLOR_GREY, "Вам нужно начать рабочий день");
if(sscanf(params, "s[64]", params[0])) return SCM(playerid, COLOR_WHITE, " Введите: (/r)adio [текст]");
if(PlayerInfo[playerid][pMuted] == 1) return SCM(playerid, COLOR_LIGHTRED, "У вас бан чата!");
if(gag[playerid] == 1) return SCM(playerid, COLOR_LIGHTRED, "У Вас кляп, вы не можете говорить!");
Rankplayer(playerid);
format(strings, 128, "[R] %s %s: %s", RankText[playerid], PlayerInfo[playerid][pName], params[0]);
SendRadioMessage(PlayerInfo[playerid][pMember], TEAM_BLUE_COLOR, strings);
SendSpyMessage(PlayerInfo[playerid][pMember], COLOR_ALLDEPT, strings);
return true;
}
PHP:
CMD:departments(playerid, params[])
{
if(!IsACop(playerid) && !IsAArm(playerid) && !IsAMayor(playerid) && !IsAMedic(playerid) && PlayerInfo[playerid][pMember] != 11) return SCM(playerid, COLOR_GREY, "Вам недоступен этот чат!");
if(PlayerInfo[playerid][pRank] < 2) return SCM(playerid, COLOR_GREY, "Вы не уполномочены писать в депортамент!");
if(FormaFrac[playerid] == 0) return SCM(playerid, COLOR_GREY, "Вам нужно начать рабочий день");
if(sscanf(params, "s[74]", params[0])) return SCM(playerid, COLOR_WHITE, " Введите: (/d)epartments [текст]");
if(PlayerInfo[playerid][pMuted] == 1) return SendMes(playerid, COLOR_LIGHTRED, "У Вас бан чата! До снятия: %d секунд(ы)",PlayerInfo[playerid][pMuteTime]);
if(dchat > gettime()) return SCM(playerid, COLOR_GREY, "Подождите 30 секунд");
dchat = gettime() + 20;
Rankplayer(playerid);
switch(PlayerInfo[playerid][pMember])
{
case 1: format(strings, 128, "LSPD %s %s: %s", RankText[playerid], PlayerInfo[playerid][pName], params[0]);
case 10: format(strings, 128, "SFPD %s %s: %s", RankText[playerid], PlayerInfo[playerid][pName], params[0]);
case 22, 4: format(strings, 128, "Medic %s %s: %s", RankText[playerid], PlayerInfo[playerid][pName], params[0]);
case 25: format(strings, 128, "[SWAT] %s %s: %s", RankText[playerid], PlayerInfo[playerid][pName], params[0]);
case 21: format(strings, 128, "LVPD %s %s: %s", RankText[playerid], PlayerInfo[playerid][pName], params[0]);
case 2: format(strings, 128, "[FBI] %s %s: %s", RankText[playerid], PlayerInfo[playerid][pName], params[0]);
case 3: format(strings, 128, "Army SF %s %s: %s", RankText[playerid], PlayerInfo[playerid][pName], params[0]);
case 19: format(strings, 128, "Army LV %s %s: %s", RankText[playerid], PlayerInfo[playerid][pName], params[0]);
case 11: format(strings, 128, "Instructor %s %s: %s", RankText[playerid], PlayerInfo[playerid][pName], params[0]);
case 7: format(strings, 128, "Mayor %s %s: %s", RankText[playerid], PlayerInfo[playerid][pName], params[0]);
}
SendTeamMessage(COLOR_ALLDEPT, strings);
return true;
}
ALT:departments:d;
Ставим в конец мода:
PHP:
stock Rankplayer(playerid)
{
new rtext[25];
switch(PlayerInfo[playerid][pMember])
{
case 0: rtext = "Нет";
case 5:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: rtext = "Новицио";
case 2: rtext = "Ассосиато";
case 3: rtext = "Сомбаттенте";
case 4: rtext = "Солдато";
case 5: rtext = "Боец";
case 6: rtext = "Сотто-Капо";
case 7: rtext = "Капо";
case 8: rtext = "Младший босс";
case 9: rtext = "Консильери";
case 10: rtext = "Дон";
default: rtext = "Новицио";
}
}
case 7:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: rtext = "Секретарь";
case 2: rtext = "Адвокат";
case 3: rtext = "Охрана";
case 4: rtext = "Нач.Охраны";
case 5: rtext = "Зам.Мэра";
case 6: rtext = "Мэр";
default: rtext = "Секретарь";
}
}
case 1, 10, 21:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: rtext = "Кадет";
case 2: rtext = "Офицер";
case 3: rtext = "Мл.Сержант";
case 4: rtext = "Сержант";
case 5: rtext = "Ст.Сержант";
case 6: rtext = "Прапорщик";
case 7: rtext = "Ст.Прапорщик";
case 8: rtext = "Мл.Лейтенант";
case 9: rtext = "Лейтенант";
case 10: rtext = "Ст.Лейтенант";
case 11: rtext = "Капитан";
case 12: rtext = "Майор";
case 13: rtext = "Подполковник";
case 14: rtext = "Полковник";
case 15: rtext = "Шериф";
default: rtext = "Кадет";
}
}
case 2:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: rtext = "Стажер";
case 2: rtext = "Дежурный";
case 3: rtext = "Мл.Агент";
case 4: rtext = "Агент GNK";
case 5: rtext = "Агент CID";
case 6: rtext = "Глава GNK";
case 7: rtext = "Глава CID";
case 8: rtext = "Инспектор FBI";
case 9: rtext = "Зам.Директора FBI";
case 10: rtext = "Директор FBI";
default: rtext = "Стажер";
}
}
case 3, 19:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: rtext = "Рядовой";
case 2: rtext = "Ефрейтор";
case 3: rtext = "Мл.Сержант";
case 4: rtext = "Сержант";
case 5: rtext = "Ст.Сержант";
case 6: rtext = "Старшина";
case 7: rtext = "Прапорщик";
case 8: rtext = "Мл.Лейтенант";
case 9: rtext = "Лейтенант";
case 10: rtext = "Ст.Лейтенант";
case 11: rtext = "Капитан";
case 12: rtext = "Майор";
case 13: rtext = "Подполковник";
case 14: rtext = "Полковник";
case 15: rtext = "Генерал";
default: rtext = "Рядовой";
}
}
case 22, 4:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: rtext = "Интерн";
case 2: rtext = "Санитар";
case 3: rtext = "Мед. Брат";
case 4: rtext = "Спасатель";
case 5: rtext = "Нарколог";
case 6: rtext = "Доктор";
case 7: rtext = "Психолог";
case 8: rtext = "Хирург";
case 9: rtext = "Зам.Глав.Врача";
case 10: rtext = "Глав.Врач";
default: rtext = "Интерн";
}
}
case 8:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: rtext = "Чипер";
case 2: rtext = "Охрана";
case 3: rtext = "Крупье";
case 4: rtext = "Зам.Директора";
case 5: rtext = "Директор";
default: rtext = "Чипер";
}
}
case 6:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: rtext = "Вакасю";
case 2: rtext = "Сятэй";
case 3: rtext = "Кёдай";
case 4: rtext = "Фуку-Хомбуте";
case 5: rtext = "Вакагасира";
case 6: rtext = "Со-Хонбуте";
case 7: rtext = "Камбу";
case 8: rtext = "Сайко Комон";
case 9: rtext = "Оядзи";
case 10: rtext = "Кумите";
default: rtext = "Вакасю";
}
}
case 14:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: rtext = "Шнырь";
case 2: rtext = "Фраер";
case 3: rtext = "Бык";
case 4: rtext = "Барыга";
case 5: rtext = "Блатной";
case 6: rtext = "Свояк";
case 7: rtext = "Браток";
case 8: rtext = "Вор";
case 9: rtext = "Вор в законе";
case 10: rtext = "Авторитет";
default: rtext = "Шнырь";
}
}
case 15:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: rtext = "Плэйя";
case 2: rtext = "Хастла";
case 3: rtext = "Килла";
case 4: rtext = "Юонг Г";
case 5: rtext = "Гангста";
case 6: rtext = "О.Г";
case 7: rtext = "Мобста";
case 8: rtext = "Де Кинг";
case 9: rtext = "Легенд";
case 10: rtext = "Мэд Дог";
default: rtext = "Плэйя";
}
}
case 17:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: rtext = "Перро";
case 2: rtext = "Тирадор";
case 3: rtext = "Геттор";
case 4: rtext = "Лас Геррас";
case 5: rtext = "Мирандо";
case 6: rtext = "Сабио";
case 7: rtext = "Инвасор";
case 8: rtext = "Тесореро";
case 9: rtext = "Нестро";
case 10: rtext = "Падре";
default: rtext = "Перро";
}
}
case 12:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: rtext = "Блайд";
case 2: rtext = "Бастер";
case 3: rtext = "Крэкер";
case 4: rtext = "Гун бро";
case 5: rtext = "Ап Бро";
case 6: rtext = "Гангстер";
case 7: rtext = "Федерал Блок";
case 8: rtext = "Фолкс";
case 9: rtext = "Райч Нигга ";
case 10: rtext = "Биг вилли";
default: rtext = "Блайд";
}
}
case 18:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: rtext = "Ладрон";
case 2: rtext = "Новато";
case 3: rtext = "Амиго";
case 4: rtext = "Мачо";
case 5: rtext = "Джуниор";
case 6: rtext = "Эрмано";
case 7: rtext = "Бандидо";
case 8: rtext = "Ауторидад";
case 9: rtext = "Аджунто";
case 10: rtext = "Падре";
default: rtext = "Ладрон";
}
}
case 13:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: rtext = "Новато";
case 2: rtext = "Ординарио";
case 3: rtext = "Локал";
case 4: rtext = "Верификадо";
case 5: rtext = "Бандито";
case 6: rtext = "V.E.G";
case 7: rtext = "Ассесино";
case 8: rtext = "Лидер V.E.G";
case 9: rtext = "Падрино";
case 10: rtext = "Падре";
default: rtext = "Новато";
}
}
case 9, 16, 20:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: rtext = "Стажер";
case 2: rtext = "Звукооператор";
case 3: rtext = "Звукорежиссер";
case 4: rtext = "Репортер";
case 5: rtext = "Ведущий";
case 6: rtext = "Редактор";
case 7: rtext = "Главный редактор";
case 8: rtext = "Технический директор";
case 9: rtext = "Программный директор";
case 10: rtext = "Генеральный директор";
default: rtext = "Стажер";
}
}
case 11:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: rtext = "Стажер";
case 2: rtext = "Консультант";
case 3: rtext = "Экзаменатор";
case 4: rtext = "Младший Инструктор";
case 5: rtext = "Инструктор";
case 6: rtext = "Координатор";
case 7: rtext = "Младший Менеджер";
case 8: rtext = "Старший Менеджер";
case 9: rtext = "Директор";
case 10: rtext = "Управляющий";
default: rtext = "Стажёр";
}
}
case 25:
{
switch(PlayerInfo[playerid][pRank])
{
case 1: rtext = "Прапорщик";
case 2: rtext = "Ст.Прапорщик";
case 3: rtext = "Мл.Лейтенант";
case 4: rtext = "Лейтенант";
case 5: rtext = "Ст.Лейтенант";
case 6: rtext = "Капитан";
case 7: rtext = "Майор";
case 8: rtext = "Подполковник";
case 9: rtext = "Полковник";
case 10: rtext = "Нач.подразделения SWAT";
default: rtext = "Прапорщик";
}
}
case 23:
{
switch(PlayerInfo[playerid][pRank])
{
case 12: rtext = "Директор";
case 11: rtext = "Зам.директора";
case 10: rtext = "Профессионал";
case 9: rtext = "Тестер";
case 8: rtext = "Серийный убийца";
case 7: rtext = "Убийца-одиночка";
case 6: rtext = "Тихий убийца";
case 5: rtext = "Спец.агент";
case 4: rtext = "Агент";
case 3: rtext = "Киллер";
case 2: rtext = "Мясник";
case 1: rtext = "Ученик";
default: rtext = "Ученик";
}
}
}
RankText[playerid] = rtext;
}
PHP:
new RankText[MAX_PLAYERS][25];
Вот и все. Мод оптимизирован примерно на -1000 строк.
Вроде ничего не забыл. Надеюсь объяснил понято.
Внимание! в моде могут быть Error's из за несовпадения enum pInfo или переменных. (Сделайте под свой мод).
Последнее редактирование:
