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

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

Показаны результаты для тегов 'готовые решения'.

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

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

Тип контента


Форумы

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

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

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


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

  • Начало

    Конец


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

  • Начало

    Конец


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

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

  1. Smolin

    Система AFK 1.0

    Описание: С помощью этой системы можно ограничить время бездействия игрока. Также просто просматривать время бездействия игрока. Введя команду /setafk - можно получить меню настроек, где можно настроить время определения AFK (время определения - время, через которое, над головой игрока появляется 3D Text о том, что игрок находится в AFK). Также можно включить/выключить кик за долгое AFK. Время кика Вы можете также настроить, введя команду/setafk. При первом запуске скрипта - в папке scriptfiles создастся файл "OP_AFK_Dostup.cfg". В этом файле, через переход на другую строку, можно прописывать ники игроков, кому разрешён доступ к изменению режимов AFK. Команды: /setafk - получить меню настроек AFK. /afkon или /afkoff - включить/выключить систему AFK. #define DAFK 1360 #define COLOR_WHITE 0xFFFFFFFF new afkoprtime = 120, bool:afkkick,afktime[MAX_PLAYERS],afkmaxtime = 1800, bool:afksystem = true; В public OnGameModeInit new File:_File_Open = fopen("OP_AFK_Dostup.cfg", io_read); if(_File_Open) fclose(_File_Open); else { new File:_File_Create = fopen("OP_AFK_Dostup.cfg", io_write); fclose(_File_Create); print("Файл \"OP_AFK_Dostup.cfg\" не был найден. Файл был создан системой."); } В public OnPlayerConnect SetTimerEx("@AFKUpdate", 10000, false, "i", playerid); afktime[playerid] = 0; В public OnPlayerText afktime[playerid] = 0 && 0; В public OnPlayerCommandText if(!strcmp(cmdtext, "/setafk", true)) { if(!DostupYes(playerid)) return 1; new string[300]; format(string, sizeof(string), "Функция\tЗначение\nВремя определения AFK\t{0000FF}%d секунд",afkoprtime); new _afkkick[90]; if(afkkick == true) format(_afkkick, sizeof(_afkkick), "\nКик за долгое AFK\t{00FF00}Включено\nКоличество секунд в AFK до кика\t{0000FF}%d секунд", afkmaxtime) ,strcat(string, _afkkick); else strcat(string, "\nКик за долгое AFK\t{FF0000}Выключено"); ShowPlayerDialog(playerid, DAFK, DIALOG_STYLE_LIST, "Система AFK",string,"Далее","Назад"); return 1; } if(!strcmp(cmdtext, "/afkon", true) || !strcmp(cmdtext, "/afkoff", true)) { if(!DostupYes(playerid)) return 1; if(afksystem == true) afksystem = false, ShowPlayerDialog(playerid, DAFK+3, DIALOG_STYLE_MSGBOX, "AFK-система", "Вы выключили AFK-систему.\nИгроки смогут стоять в AFK сколько захотят.\nНад никами игроков не будет показано время AFK.", "Понятно",""); else if(afksystem == false) { afksystem = true; new string[150]; format(string, sizeof(string), "Вы включили AFK-систему.\nНад никами игроков, при бездействии, появится\nтекст, показывающий время, находящееся игроком в AFK.\nТекст над никами появится в течении %d секунд.", afkoprtime); ShowPlayerDialog(playerid, DAFK+3, DIALOG_STYLE_MSGBOX, "AFK-система", string, "Понятно", ""); return 1; } return 1; } В public OnPlayerUpdate afktime[playerid] = 0; В public OnDialogResponse switch(dialogid) { case DAFK: { if(!response) return 1; switch(listitem) { case 0: return ShowPlayerDialog(playerid, DAFK+1, DIALOG_STYLE_INPUT, "Время определения AFK", "Введите новое время определения AFK.\n\nСтандартное время: 120 секунд.\nНельзя вводить число, менее 60 секунд.\nВремя вводится в секундах.","Далее","Отмена"); case 1: { if(afkkick == false) return ShowPlayerDialog(playerid, DAFK+2, DIALOG_STYLE_MSGBOX, "Кик за AFK", "Вы хотите включить кик за долгое AFK?\n\nВремя, за которое игрок будет кикнут - можно изменить.\nСтандартное время = 1800 секунд.", "Далее","Назад"); else return ShowPlayerDialog(playerid, DAFK+2, DIALOG_STYLE_MSGBOX, "Кик за AFK", "Вы хотите выключить кик за долгое AFK?\n\nИгрок сможет стоять в AFK сколько захочет.", "Далее","Назад"); } case 2: return ShowPlayerDialog(playerid, DAFK+4, DIALOG_STYLE_INPUT, "Время кика за AFK", "Введите новое время определения AFK.\n\nСтандартное время: 1800 секунд.\nНельзя вводить число, менее 120 секунд.\nНельзя вводить время, менее времени по определению AFK.\nВремя вводится в секундах.","Далее","Отмена"); } return 1; } case DAFK+1: { if(!response) return OnPlayerCommandText(playerid, "/setafk"); if(!strlen(inputtext) || strval(inputtext) < 60) return ShowPlayerDialog(playerid, DAFK+1, DIALOG_STYLE_INPUT, "Время определения AFK", "Введите новое время определения AFK.\n\nСтандартное время: 120 секунд.\nНельзя вводить число, менее 60 секунд.\nВремя вводится в секундах.","Далее","Отмена"); afkoprtime = strval(inputtext); return 1; } case DAFK+2: { if(!response) return OnPlayerCommandText(playerid, "/setafk"); afkkick = (afkkick == false) ? true : false; OnPlayerCommandText(playerid, "/setafk"); return 1; } case DAFK+3: return 1; case DAFK+4: { if(!response) return OnPlayerCommandText(playerid, "/setafk"); if(!strlen(inputtext) || strval(inputtext) < 120 || strval(inputtext) < afkoprtime) return ShowPlayerDialog(playerid, DAFK+4, DIALOG_STYLE_INPUT, "Время кика за AFK", "Введите новое время определения AFK.\n\nСтандартное время: 1800 секунд.\nНельзя вводить число, менее 120 секунд.\nНельзя вводить время, менее времени по определению AFK.\nВремя вводится в секундах.","Далее","Отмена"); afkmaxtime = strval(inputtext); return 1; } } В конец мода @AFKUpdate(playerid); @AFKUpdate(playerid) { if(afksystem == false) goto AFKTIMER; afktime[playerid]++; new string[20]; if(afktime[playerid] > afkoprtime) format(string,sizeof(string),"[AFK] %d секунд",afktime[playerid]), SetPlayerChatBubble(playerid,string,0xFFFFFFAA,10.0,1000); if(afkkick == true && afktime[playerid] >= afkmaxtime) SendClientMessage(playerid, COLOR_WHITE, "[{0000FF}AFK{FFFFFF}] Вы были кикнуты за долгое бездействие (AFK)."), KickEx(playerid); AFKTIMER: SetTimerEx("@AFKUpdate", 1000, false, "i", playerid); return 1; } stock KickEx(playerid) return SetTimerEx("@KicK", 100, false, "i", playerid); @KicK(playerid); @KicK(playerid) return Kick(playerid); stock DostupYes(playerid) { new nameplayerid[MAX_PLAYER_NAME]; GetPlayerName(playerid, nameplayerid, MAX_PLAYER_NAME); new File:_File_Open = fopen("OP_AFK_Dostup.cfg", io_read); if(_File_Open) { new and[128]; while(fread(_File_Open, and)) if(!strcmp(nameplayerid, and, true)) return 1; fclose(_File_Open); } else return print("Файл \"OP_AFK_Dostup.cfg\" не был создан. Вы можете создать файл вручную или перезапустить скрипт.") && 0; return 0; } Автор: Oleg_Petrow
×

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

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