Перейти к содержанию

Поиск сообщества

Показаны результаты для тегов 'форум crmp'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Информационный раздел
    • Новости портала
    • Техническая поддержка
    • Приватный форум
  • CRMP 0.3е
    • Помощь по Скриптингу
    • Ошибки
    • Готовые сервера
    • Дополнительные скрипты
    • Мануалы/Уроки
    • Модификации
    • Поиск
    • Архив Вопросов/Проблем/Ошибок
    • Файловый архив
    • Другое
  • SAMP/CRMP 0.3.7
    • Помощь по Скриптингу
    • Ошибки
    • Готовые сервера
    • Плагины
    • Поиск
    • Документация
  • Другое
    • Флейм

Поиск результатов в...

Поиск результатов, которые содержат...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Найдено: 837 результатов

  1. Помогите срочно у меня нитро поставил в мод и он на все авто а и на матациклы из за этого сервер крашит а сделать так чтоб нитро довалось кмд на тюнинг только а не так
  2. Artem_Fedorov

    [FS]TextDrawEditor

    Данный скрипт позволит вам создать TextDraw прямо из игры.Держите может кому пригодиться! Для начала нужно авторизоваться через rcon: /rcon login (ваш пароль тут без скобок) Далее введите следующую команду: /rcon loadfs TextDrawEditor1.0 И наконец чтобы начать делать TextDraw введите /text Ссылка на скачивание: http://yadi.sk/d/WwIM4FE2KfnyZ
  3. FVCKFISH

    Intro TEXTdraw

    Поймете, если посмотрите скрин. Обычный интро при входе. Быдлокод. Как пример взял название будучи нового сервера "Undercover RP" Ссылка на pwn файл: http://yadi.sk/d/psN5usobKY9kr Ссылка на amx файл(вдруг нужна будет):http://yadi.sk/d/ThMVs_0yKY9m9 Автор скрипта(по словам Amfy): Rackety Автор переделки:francuzik
  4. Ничего мудреного - обычная команда с анимацией избушки на персонаже.
  5. Evgeniy_Stark

    [FS] Tazer

    Здравствуйте Уважаемые Пользователи портала GSGAMES Хочу вам выкласть скрипт Электрошокера,данный скрипт я нашёл в папке мода Вот сcылка:
  6. В этом уроке вы узнаете как сделать динамическое название сервера(hostname). Ко всем new, добавляем: new gChangeHN; В OnGameModeInit(), добавим таймер: SetTimer("ChangeHostname", 10000, 1); // Промежуток времени, через которое будет меняться название сервера(Сейчас стоит 10 сек.) В конец мода(ну или куда удобнее), добавим: forward ChangeHostname(); public ChangeHostname() { switch (gChangeHN) { case 0: SendRconCommand("hostname Название RP [CR-MP 0.3e]"); //Название 1 case 1: SendRconCommand("hostname Название RP [Присоединяйся!]"); //Название 2 } if(gChangeHN == 2) { gChangeHN = 0; } else { gChangeHN++; } } Автор: Неизвестен
  7. Доброго времени суток. Когда-то этот тутор здесь был, но время его не пощадило. В сегодняшнем уроке предлагаю немного разобрать сразу две темы - использование директив препроцессора (а конкретно - макросов) и использование таймеров. Ну и, конечно, не на абстрактном примере, а сразу в написании чего-либо полезного. Например - для запрета DM в определенных зонах. Начнем с директив препроцессора. Собственно, препроцессор - служебный программный инструмент, осуществляющий конвертацию кода программы в промежуточный для последующей компиляции в бинарный файл. Директива препроцессора - строка в исходном коде вида #КлючевоеСловоПрепроцессора, определяющая дальнейшее поведение препроцессора и использование им неких служебных функций. Макрос (#define) - определенная директива препроцессора, позволяющая при компиляции кода использовать замену исходного выражения на некоторое другое. Это крайне удобно, когда необходимо часто использовать какое-либо достаточно объемное выражение, но нет желания оборачивать его в отдельную функцию. Яркий пример - нахождение большего из двух чисел: #define max(a,b) ((a) > (b) ? (a) : (b))Перейдем к таймерам.AMX-машина может вызывать определенные функции в объявленные программистом периоды времени. Какой из функций языка Pawn будет вызван такой таймер - зависит уже от функции: Если вызываемая функция не имеет параметров - используется функция SetTimer: SetTimer (funcname[], interval, bool:repeating)Где funcname - имя вызываемой функции, interval - время следующего запуска функции в миллисекундах, repeating - повторять ли запуск функции или нет. Если вызываемая функция имеет параметры - используется функция SetTimerEx: SetTimerEx (funcname[], interval, repeating, const format[], {Float,_}:...)Первые три параметра - аналогичны SetTimer. Далее идет строка, в которой задаются типы передаваемых переменных, после нее - все необходимые для передачи вызываемой функции параметры. Обе эти функции возвращают целочисленный ID созданного таймера. Прибить такой таймер можно вызовом функции KillTimer. Наверное, на этом с теорией можно покончить и перейти к практике. Итак, поставим перед собой задачу: написать скрипт, отслеживающий нажатие игроком определенных кнопок, если он находится в определенной зоне. Если игрок в зоне и нажимает на эти кнопки - увеличить счетчик на единицу, если счетчик больше двух и четырех - вывести определенные сообщения, если больше пяти - закрыть соединение. Подключим библиотеку a_samp, более нам ничего не нужно. И сразу же объявим следующий макрос: #define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))Данный макрос помогает обернуть достаточно длинное выражение, которое, по сути, означает лишь одно - проверку на нажатие кнопки. Если будет необходимо, в следующих уроках я могу разобрать, как работает обработчик нажатия клавиш OnPlayerKeyStateChange. Далее - объявим необходимые для работы переменные. Во-первых - отдельную структуру для хранения зон, состоящую из четырех чисел с плавающей точкой - трех координат и радиуса зоны. Также нужны массивы для счетчика нажатий и для всех зон. new DM_Counter[MAX_PLAYERS]; enum DM_Checker { Float:X, Float:Y, Float:Z, Float:Radius } new NoDM_Zones[][DM_Checker] = { {2549.0840,-2204.8350,21.9583,45.0},// 8 БИТ {175.3027,784.5325,12.0010,27.0},//Перекрёсток {2130.7192,-2182.4277,21.9545,40.0},//Автошкола Южный {2745.0464,-2294.7100,17.6124,40.0},//ШтрафСтоянка {1908.3670654297,-2233.1806640625,10.894914627075,45.0},//Мэрия {2343.427734375,-1809.4577636719,22.09578704834,60.0},//АвтоСалон {2509.3679199219,-2126.5373535156,23.105073928833,20.0}//Респаун новичков };Координаты и радиусы приведены для примера. Во время старта скрипта нам нужно запустить таймер сброса счетчика. Для этого необходима отдельная функция, которая будет доступна из любого места вызова, то есть - с публичным доступом, или public. Ее и объявим. Алгоритм простой - пробег по всему массиву DM_Counter, если в ячейке массива не ноль - обнулить. forward DM_Counter_reset(); public DM_Counter_reset () { for (new i=0; i<MAX_PLAYERS; i++) { if (DM_Counter[i]!=0) SendClientMessage (i, 0x00FF0000, "Счётчик попыток DM сброшен."); DM_Counter[i]=0; } }Важно поднять прототип функции (forward DM_Counter_reset) выше места вызова самой функции и других функций, из которых она может быть вызвана.Запускаем таймер при старте бинарника (для примера - OnFilterScriptInit) public OnFilterScriptInit () { SetTimer("DM_Counter_reset", 10*1000, true); return 1; }Очень важно очистить данные перед подключением игрока. Не забудем это сделать в OnPlayerConnect. public OnPlayerConnect(playerid) { DM_Counter[playerid]=0; return 1; }Подготовка завершена. Отслеживание нажатия кнопок проходит в автовызываемой функции (коллбэке) OnPlayerKeyStateChange. Его мы и будем рассматривать. Для начала - переберем все возможные условия, которые нам нужны. Это: Нажатие ЛКМ (KEY_FIRE); Нажатие ЛКМ вместе с ПКМ (KEY_FIRE | KEY_HANDBRAKE); Нажатие ПКМ и F (KEY_SECONDARY_ATTACK | KEY_HANDBRAKE). Если такие клавиши нажаты - проверяем все зоны на присутствие в них игрока. Сделаем это с помощью IsPlayerInRangeOfPoint и пробежим циклом по всем зонам. Если игрок в зоне - завершаем цикл, увеличиваем счетчик предупреждений на единицу. Больше пяти? Закрываем соединение. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(PRESSED (KEY_FIRE) || PRESSED (KEY_FIRE | KEY_HANDBRAKE) || PRESSED (KEY_SECONDARY_ATTACK | KEY_HANDBRAKE)) { for(new i=0;i<sizeof(NoDM_Zones);i++) { if(IsPlayerInRangeOfPoint(playerid,NoDM_Zones[i][Radius],NoDM_Zones[i][X],NoDM_Zones[i][Y],NoDM_Zones[i][Z])) { if (DM_Counter[playerid] == 5) { new name[MAX_PLAYER_NAME], string[64+MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "Игрок %s был кикнут сервером. Причина: DM в зеленой зоне", name); SendClientMessageToAll(0xAA3333FF, string); Kick (playerid); } else { DM_Counter[playerid] = DM_Counter[playerid]+1; if (DM_Counter[playerid]>=2) SendClientMessage (playerid, 0xFFFF0000, "DM в зеленой зоне запрещен!"); if (DM_Counter[playerid]>=4) SendClientMessage (playerid, 0xFFFF0000, "При дальнейших попытках DM Вы будете наказаны."); } } } } return 1; } <
  8. Этот скрипт предоставит вам возможность следить за игроками вашего сервера. Следить можно не только за игроком, но и за его транспортным средством. Чтобы перейти в режим наблюдения, используйте команду /see. Наблюдение за персонажем. При наблюдение за персонажем показываются следующие характеристики: - Состояние игрока (Жизнь) - Броня игрока - Интрерье в котором находится игрок - Мир в котором находится игрок - Деньги игрока - ИД игрока Наблюдение за транспортным средством. При наблюдение за транспортным средством показываются следующие характеристики: - Состояние игрока (Жизнь) - Броня игрока - Состояние ТС (Жизнь) - Мир в котором находится ТС - Деньги игрока - Скорость ТС - ИД ТС Функции управления наблюдением реализовано на TextDraw: - ADMINS HERE - показывает список администраторов, которые наблюдают за этим игроком (за котором вы наблюдаете) - CLOSE - выйти из режима наблюдения - LEFT - переключится на игрока ниже текущего, если он авторизован - RIGHT - переключится на игрока выше текущего, если он авторизован - SLAP - подкинуть игрока - CARBREAK - сломать авто до черного дыма Примечание: Кнопочки LEFT и RIGHT - НЕ ПРОВЕРЯЛ, поэтому они возможно не работают. АВТОР НЕ Я SEE.rar
  9. FVCKFISH

    По поводу управления Map Editor.

    Вообщем вопрос такой, у меня одного такое убогое управление расстановки маппинга в Map Editor или у всех так. Я привык в МТА всё по кнопкам делать,а в Map Editor я ничего не пойму, единственное стрелками и Ctrl и всё, либо там в разделик заходишь и самому нужно вписывать и двигать.
  10. Что-бы создать гараж нужно быть авторизированным через rcon (( /rcon login )) 1.Создать гараж /addgarage 2. Изменения координатов выезда,въезда /edgarag 3.Меню гаража /garagmenu Предыдущий скрипт удалили вот выкладываю вам Скрины: Тут я затупил нужно сначала,перед тем как создали гараж нужно настроить координаты,после он готов к покупке Нашел 1 баг,после рестарта сервера,пропадает пикап,кто знает как исправить стучитесь в ЛС! Перезагружать сервер,обязательно /rcon gmx либо полетят все гаражи. Автор переделки: Egorcik Автор скрипта:Storn Garage Sys.rar
  11. arsenvk2000

    Anti Doss

    В этой версии: - Анти PizDos Bot - Анти DedaVanya - Анти CaypDos - Анти RakSamp - Анти FakeKill - Анти Test1 - Анти Lagger - Анти Pinger - Анти Краш (Если вас крашунли то вас кикнет и вы отвисните) - Анти Флуд в чат (Баг исправлен) - Анти Флуд OnPlayerClick (Таймер флуда в 30 секунд) - Анти Флуд SendMessageClient - Анти Флуд смены мест - Автоматическая очистка чата через каждые 16 минут - Автоматический рестарт сервера в 4:00 (По МСК) - Анти Краш тюнингом - Анти Краш %s в диалог. (На всякий случай) - Анти Краш посадка игрока на 5 место в машине - Анти Флуд Connect СКРИПТ не мой! Автор представил себя по имени Ildar Вообще анти-досс толковый и действующий 100%.Проверено. Ссылка на скачивание:http://rghost.ru/52186130 Пароль для скачивания: GSG
  12. Здравствуйте Уважаемые Форумчане GS-Games форума. Сегодня я хочу предложить вам купить переведённую Динамическая система Гаражей, [FS] Скрипт с SA:MP на CR:MP(скрипт работает только с Авторизацией на RCON:Администраторку).
  13. Frozen Man

    Fancy RP из SA:MP

    Уважаемые жители игрового портала "GSG" представляю вам новый игровой мод Fancy-rp.ru. Мод разрабатывался долгое время, переводился из SA:MP переведены все фракции, есть места где крашит думаю вы сами исправите. Есть автомастерская в Gopкар там вы можете затюининговать авто, бизнес АЗС можно создать из игры, так-же дома/авто передвигаются. Есть ферма полностью функционирует, если вы желаете можете перевести грибы до конца.Не забудьте поставить streamer. Я буду очень рад если кто-то продолжит данный проект, просьба название не брать так как оно принадлежит нам по праву. У проекта был форум fancy-rp.ru но форум закрыт так как теперь у нас проект под названием "Connected RolePlay" ============================================================================== Спсисок организаций:Полиция УВД Южного ФБР Авианосец МЧС LCN Yakuza Мэрия Байкеры SF News Полиция УВД Батырёва Инструкторы Гопники The Vagos Русская мафия Солнцевская LS News The Aztecas Вандалы Армия: Зона 51 LV News Полиция УВД Арзамас МЧС Лос Сантос P.S Названия меняйте сами. ============================================================================== Переводили мод: Maxim_Plotnikov/Gerasimov Maxim_Yakovskiy Fancy RP из SAMP.zip
  14. Shved

    [FS]Ферма

    Выкладываю вам скрипт фермы. Был на моем старом проекте Автор: Мой друг ferm.pwn
  15. Всем привет. Наверное многих кто работал с модом Gamer достал один баг, вроде в исправлении легкий но сложный в поиске. Я долго искал в чем проблема, пока не начал по этапно изучать все. Как извесно баг заключается в том что авто после рес кара ставало не так как его парковали. Но после "Рестарта" все было норм. Кароче говоря проблема в одном паблике OnVehicleSpawn(vehicleid). Для того что бы вам исправить баг нужно заменить всего пару строчек. В геймере этот паблик выглядит так: public OnVehicleSpawn(vehicleid) { DestroyObject(Blink[vehicleid][0]); DestroyObject(Blink[vehicleid][1]); VehInfo[vehicleid][vRightBlink] = 0; DestroyObject(Blink[vehicleid][2]); DestroyObject(Blink[vehicleid][3]); VehInfo[vehicleid][vLeftBlink] = 0; if(GetRealID(vehicleid) != -1) { if(!strcmp(CarInfo[GetRealID(vehicleid)][cOwner],"Nones",false)) { SetVehiclePos(vehicleid,CarInfo[GetRealID(vehicleid)][cAx],CarInfo[GetRealID(vehicleid)][cAy],CarInfo[GetRealID(vehicleid)][cAz]); SetVehicleZAngle(vehicleid,CarInfo[GetRealID(vehicleid)][cAa]); } else { SetVehiclePos(vehicleid,CarInfo[GetRealID(vehicleid)][cPx],CarInfo[GetRealID(vehicleid)][cPy],CarInfo[GetRealID(vehicleid)][cPz]); SetVehicleZAngle(vehicleid,CarInfo[GetRealID(vehicleid)][cPa]); } ChangeVehicleColor(vehicleid,CarInfo[GetRealID(vehicleid)][cCol1],CarInfo[GetRealID(vehicleid)][cCol2]); SetTuneCar(vehicleid); } return 1; } Но функция здесь не верна, так как SetVehicleZAngle не загружает угол поворота если персонаж не находится в авто. По этому что бы загружать угол поворота вам нужно сделать уничтожение авто и создание нового. Выглядит это примерно вот так: public OnVehicleSpawn(vehicleid) { DestroyObject(Blink[vehicleid][0]); DestroyObject(Blink[vehicleid][1]); VehInfo[vehicleid][vRightBlink] = 0; DestroyObject(Blink[vehicleid][2]); DestroyObject(Blink[vehicleid][3]); VehInfo[vehicleid][vLeftBlink] = 0; DestroyVehicle(CarInfo[GetRealID(vehicleid)][cID]);//Удаляем авто if(!strcmp(CarInfo[GetRealID(vehicleid)][cOwner],"Nones",false)) { CarInfo[GetRealID(vehicleid)][cID] = CreateVehicle(CarInfo[GetRealID(vehicleid)][cMod],CarInfo[GetRealID(vehicleid)][cAx],CarInfo[GetRealID(vehicleid)][cAy],CarInfo[GetRealID(vehicleid)][cAz],CarInfo[GetRealID(vehicleid)][cAa],CarInfo[GetRealID(vehicleid)][cCol1],CarInfo[GetRealID(vehicleid)][cCol2],60000*4); } else { CarInfo[GetRealID(vehicleid)][cID] = CreateVehicle(CarInfo[GetRealID(vehicleid)][cMod],CarInfo[GetRealID(vehicleid)][cPx],CarInfo[GetRealID(vehicleid)][cPy],CarInfo[GetRealID(vehicleid)][cPz],CarInfo[GetRealID(vehicleid)][cPa],CarInfo[GetRealID(vehicleid)][cCol1],CarInfo[GetRealID(vehicleid)][cCol2],60000*4); } ChangeVehicleColor(vehicleid,CarInfo[GetRealID(vehicleid)][cCol1],CarInfo[GetRealID(vehicleid)][cCol2]); SetTuneCar(vehicleid); ChangeVehiclePaintjob(vehicleid,CarInfo[GetRealID(vehicleid)][cPaintJob]); SetTuneCar(vehicleid); return 1; } Взято с другого ресурса!!! Автор : Red_Devils
  16. Maximka

    Вип чат

    Здравствуйте Уважаемые пользователи сайта Gs-Games! Вот выкладываю вип чат(Для игроков с випом 1,2,и 3 лвл) Делал сам! Вот собственно команда Автор:Maximka if(strcmp(cmd, "/vc", true) == 0 || strcmp(cmd, "/v", true) == 0 || strcmp(cmd, "//", true) == 0) { if(IsPlayerConnected(playerid)) { GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[72]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { SendClientMessage(playerid, COLOR_GRAD2, "*Используйте: (/vc)[Вип чат]"); return 1; } if (PlayerInfo[playerid][pDonateRank] == 1) { format(string, sizeof(string), "Bronse VIP`S %s: %s", sendername, result); SendClientMessageToAll(COLOR_ORANGE,string); } else if (PlayerInfo[playerid][pDonateRank] == 2) { format(string, sizeof(string), "Silver VIP`S %s: %s", sendername, result); SendClientMessageToAll(COLOR_WHITE,string); } else if (PlayerInfo[playerid][pDonateRank] == 3) { format(string, sizeof(string), "Gold VIP`S %s: %s", sendername, result); SendClientMessageToAll(COLOR_YELLOW,string); } else { SendClientMessage(playerid, COLOR_GRAD1, " У вас нет прав!"); return 1; } printf("Vip %s: %s", sendername, result); } return 1; }
  17. Здравствуйте! Эта тема для тех, кто не знает как ставить анти чит в мод. Начнем. Ко всем include добавляем: #include <a_samp> Затем ко всем new: new Money[MAX_PLAYERS]; Теперь ищем форвары и ко всем forward: forward Loshadka(); И теперь в public вставим это: public Loshadka() { for(new i =0;i<MAX_PLAYERS;i++) { if(GetPlayerMoney(i) != Money[i]) { GivePlayerMoney(i,Money[i]-GetPlayerMoney(i)); //SendClientMessage(i,0xFEFEFEFF,"Не шали с читами тута"); } } } stock ResetPlMon(playerid) { Money[playerid] =0; GivePlayerMoney(playerid,0-GetPlayerMoney(playerid)); return 1; } stock GiveMoney(playerid,a) { Money[playerid] += a; GivePlayerMoney(playerid,a); return 1; } На этом все.
  18. Доброго времени суток! Хочу представить вашему вниманию скрипт покупки мебели для CRMP. С помощью этого скрипта вы сможете покупать мебель(команда /furniture) и расставлять её в удобном для вас месте(команда /fplant). Скрипт адаптирован под версию мультиплеера CRMP 0.3e. Автор скрипта: jueix Изменения/исправления/адаптация под CRMP/русификация: Klebitz Планируется: 1. Добавить 3 мебельных магазина. 2. Мебель можно будет класть в багажник автомобиля. 3. Команда покупки мебели будет действовать в определённом радиусе. Видео: http://yadi.sk/d/HeRgPsEVJ9DTm
  19. #JokeStar

    Пар при дыхании

    Доброго времени суток! Я думаю, что многие из вас, играя на серверах SAMP и CRMP, видели, что у игроков выходит пар изо рта при дыхании. Теперь данная возможность может появится и на вашем сервере. Данный скрипт позволяет игрокам выдыхать пар: при обычной ходьбе 1 раз в 3 секунды, а при беге 1 раз в 1 секунду. Для установки скрипта вам необходимо скопировать 2 файла из архива в папку filterscripts и прописать название скрипта в файле server.cfg. Приятной игры! Скриншот: Автор Klebitz http://yadi.sk/d/gHhWfyhWJ9EDG A.Volovnik Убрал цитаты.
  20. Изначально она заменяет Sabre, но я заменил ZR-350. У нее есть один недостаток - капот открывается вниз. Но большую роль сыграли поднимающиеся фары :)
  21. Данная модель заменяет Esperanto. Мне очень понравилась данная модель. :)
  22. Всем, кому надоел стандартный FBI Rancher, советую установить этот Chevrolet. Скажу сразу, не самые качественные повреждения. Понравилось что работает мигалка(не смог ее заснять :)) и выхлоп идет четко из глушителя.
  23. Вы используйте команду /canal [1-10000] для выбора нужной вам частоты. После выбора частоты вы автоматический подключаетесь к выбранному вами каналу и можете активно вести общение с помощью команды /rс [текст]. Также другой или иной игрок может подключиться к вашей частоте. Ко всем forward: forward SendRcanalMessage(canal, color, string[]); Ко всем new: new Rcanal[MAX_PLAYERS]; В public OnPlayerConnect добавляем: Rcanal[playerid] = 0; В конец мода: public SendRcanalMessage(canal, color, string[]) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(Rcanal[i] == canal) { SendClientMessage(i, color, string); } } } }В public OnPlayerCommandText добавляем команды:if(strcmp(cmd, "/rс", true) == 0) { if(!IsPlayerConnected(playerid)) return 1; if(PlayerInfo[playerid][pMuted] == 1) return SendClientMessage(playerid, -1, "Вы не можете писать, у вас молчанка"); if(Rcanal[playerid] < 1) return SendClientMessage(playerid, -1, "Вы не на частоте. Подключитесь, используя /canal (номер канала от 0 по 10000)"); GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) return SendClientMessage(playerid, -1, "Используйте: /rc [текст]"); format(string, sizeof(string), "(%d) %s: %s", Rcanal[playerid], sendername, result); SendRcanalMessage(Rcanal[playerid], TEAM_CYAN_COLOR, string); return 1; } if(strcmp(cmd, "/canal", true) == 0) { if(!IsPlayerConnected(playerid)) return 1; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Используйте: /canal [номер канала[(1-10000)]"); new canal; canal = strval(tmp); if(canal > 10000|| canal < 1) return SendClientMessage(playerid, -1, "Номер канала от 1 по 10000!"); Rcanal[playerid] = canal; format(string, sizeof(string), "Вы подключились к частоте номер %d", canal); SendClientMessage(playerid, COLOR_LIGHTBLUE,string); } Автор: NOD32
×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.