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

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

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

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

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

Тип контента


Форумы

  • Информационный раздел
    • Новости портала
    • Команда портала
    • Техническая поддержка
    • Предложения по доработке
    • Приватный форум
  • CRMP 0.3е
    • Помощь по Скриптингу
    • Ошибки
    • Готовые сервера
    • Дополнительные скрипты
    • Мануалы/Уроки
    • Ваши сервера
    • Модификации
    • Поиск
    • Файловый архив
    • Другое
  • CRMP 0.3.7
    • Помощь по Скриптингу
    • Ошибки
    • Готовые сервера
    • Плагины
    • Поиск
    • Документация
  • Моделирование
    • Autodesk 3ds Max
    • Zanoza Modeler
  • Торговая площадка
    • Покупка/Продажа
    • Стол заказов
  • Графика
    • Уроки Photoshop
    • Авторские работы
    • Заказы
    • Всё для Adobe Photoshop
  • Другое
    • Обзоры хостингов
    • Флейм

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

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


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

  • Начало

    Конец


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

  • Начало

    Конец


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

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

  1. Доброе время суток, пользователи cr-mp.ru. Хочу выложить систему под названием 'Загрузка Текстур'. 1. Создаем переменные: new Text: gTexture[18], playerTextureTimer[MAX_PLAYERS], PlayerText: pTexture[MAX_PLAYERS]; 2. Создаем TextDraw будущего загрузчика текстур: В CallBack OnGameModeInit: gTexture[0] = TextDrawCreate(243.5000, 209.1036, !"LD_BEAT:chit"); TextDrawTextSize(gTexture[0], 26.0000, 32.0000); TextDrawAlignment(gTexture[0], 1); TextDrawColor(gTexture[0], 303174399); TextDrawBackgroundColor(gTexture[0], 255); TextDrawFont(gTexture[0], 4); TextDrawSetProportional(gTexture[0], 0); TextDrawSetShadow(gTexture[0], 0); gTexture[1] = TextDrawCreate(366.7075, 209.1036, !"LD_BEAT:chit"); TextDrawTextSize(gTexture[1], 26.0000, 32.0000); TextDrawAlignment(gTexture[1], 1); TextDrawColor(gTexture[1], 303174399); TextDrawBackgroundColor(gTexture[1], 255); TextDrawFont(gTexture[1], 4); TextDrawSetProportional(gTexture[1], 0); TextDrawSetShadow(gTexture[1], 0); gTexture[2] = TextDrawCreate(243.5000, 149.3999, !"LD_BEAT:chit"); TextDrawTextSize(gTexture[2], 26.0000, 32.0000); TextDrawAlignment(gTexture[2], 1); TextDrawColor(gTexture[2], 303174399); TextDrawBackgroundColor(gTexture[2], 255); TextDrawFont(gTexture[2], 4); TextDrawSetProportional(gTexture[2], 0); TextDrawSetShadow(gTexture[2], 0); gTexture[3] = TextDrawCreate(366.7075, 149.3999, !"LD_BEAT:chit"); TextDrawTextSize(gTexture[3], 26.0000, 32.0000); TextDrawAlignment(gTexture[3], 1); TextDrawColor(gTexture[3], 303174399); TextDrawBackgroundColor(gTexture[3], 255); TextDrawFont(gTexture[3], 4); TextDrawSetProportional(gTexture[3], 0); TextDrawSetShadow(gTexture[3], 0); gTexture[4] = TextDrawCreate(254.5000, 154.6556, !"LD_SPAC:white"); TextDrawTextSize(gTexture[4], 126.0000, 80.8901); TextDrawAlignment(gTexture[4], 1); TextDrawColor(gTexture[4], 303174399); TextDrawBackgroundColor(gTexture[4], 255); TextDrawFont(gTexture[4], 4); TextDrawSetProportional(gTexture[4], 0); TextDrawSetShadow(gTexture[4], 0); gTexture[5] = TextDrawCreate(247.6999, 162.4223, !"LD_SPAC:white"); TextDrawTextSize(gTexture[5], 10.0000, 64.0000); TextDrawAlignment(gTexture[5], 1); TextDrawColor(gTexture[5], 303174399); TextDrawBackgroundColor(gTexture[5], 255); TextDrawFont(gTexture[5], 4); TextDrawSetProportional(gTexture[5], 0); TextDrawSetShadow(gTexture[5], 0); gTexture[6] = TextDrawCreate(378.3001, 162.6892, !"LD_SPAC:white"); TextDrawTextSize(gTexture[6], 10.0000, 64.0000); TextDrawAlignment(gTexture[6], 1); TextDrawColor(gTexture[6], 303174399); TextDrawBackgroundColor(gTexture[6], 255); TextDrawFont(gTexture[6], 4); TextDrawSetProportional(gTexture[6], 0); TextDrawSetShadow(gTexture[6], 0); gTexture[7] = TextDrawCreate(333.7075, 170.5258, !"LD_BEAT:chit"); TextDrawTextSize(gTexture[7], 7.0000, 9.0000); TextDrawAlignment(gTexture[7], 1); TextDrawColor(gTexture[7], -6749953); TextDrawBackgroundColor(gTexture[7], 255); TextDrawFont(gTexture[7], 4); TextDrawSetProportional(gTexture[7], 0); TextDrawSetShadow(gTexture[7], 0); gTexture[8] = TextDrawCreate(294.2075, 204.1258, !"LD_BEAT:chit"); TextDrawTextSize(gTexture[8], 7.0000, 9.0000); TextDrawAlignment(gTexture[8], 1); TextDrawColor(gTexture[8], -6749953); TextDrawBackgroundColor(gTexture[8], 255); TextDrawFont(gTexture[8], 4); TextDrawSetProportional(gTexture[8], 0); TextDrawSetShadow(gTexture[8], 0); gTexture[9] = TextDrawCreate(303.2075, 213.4591, !"LD_BEAT:chit"); TextDrawTextSize(gTexture[9], 4.0000, 5.0000); TextDrawAlignment(gTexture[9], 1); TextDrawColor(gTexture[9], -6749953); TextDrawBackgroundColor(gTexture[9], 255); TextDrawFont(gTexture[9], 4); TextDrawSetProportional(gTexture[9], 0); TextDrawSetShadow(gTexture[9], 0); gTexture[10] = TextDrawCreate(326.2075, 167.4146, !"LD_BEAT:chit"); TextDrawTextSize(gTexture[10], 4.0000, 5.0000); TextDrawAlignment(gTexture[10], 1); TextDrawColor(gTexture[10], -6749953); TextDrawBackgroundColor(gTexture[10], 255); TextDrawFont(gTexture[10], 4); TextDrawSetProportional(gTexture[10], 0); TextDrawSetShadow(gTexture[10], 0); gTexture[11] = TextDrawCreate(320.0000, 224.2779, !"€A™PY€KA_ЏEKCЏYP"); TextDrawLetterSize(gTexture[11], 0.1860, 0.9342); TextDrawAlignment(gTexture[11], 2); TextDrawColor(gTexture[11], -1); TextDrawBackgroundColor(gTexture[11], 255); TextDrawFont(gTexture[11], 2); TextDrawSetProportional(gTexture[11], 1); TextDrawSetShadow(gTexture[11], 0); gTexture[12] = TextDrawCreate(261.0000, 209.2889, !"]"); TextDrawLetterSize(gTexture[12], 0.2439, 1.0711); TextDrawAlignment(gTexture[12], 2); TextDrawColor(gTexture[12], 555819519); TextDrawBackgroundColor(gTexture[12], 255); TextDrawFont(gTexture[12], 2); TextDrawSetProportional(gTexture[12], 1); TextDrawSetShadow(gTexture[12], 0); gTexture[13] = TextDrawCreate(373.5000, 166.3556, !"]"); TextDrawLetterSize(gTexture[13], 0.2439, 1.0711); TextDrawAlignment(gTexture[13], 2); TextDrawColor(gTexture[13], 555819519); TextDrawBackgroundColor(gTexture[13], 255); TextDrawFont(gTexture[13], 2); TextDrawSetProportional(gTexture[13], 1); TextDrawSetShadow(gTexture[13], 0); gTexture[14] = TextDrawCreate(358.0000, 196.2223, !"]"); TextDrawLetterSize(gTexture[14], 0.1729, 0.8346); TextDrawAlignment(gTexture[14], 2); TextDrawColor(gTexture[14], 555819519); TextDrawBackgroundColor(gTexture[14], 255); TextDrawFont(gTexture[14], 2); TextDrawSetProportional(gTexture[14], 1); TextDrawSetShadow(gTexture[14], 0); gTexture[15] = TextDrawCreate(283.5000, 169.4667, !"]"); TextDrawLetterSize(gTexture[15], 0.1729, 0.8346); TextDrawAlignment(gTexture[15], 2); TextDrawColor(gTexture[15], 555819519); TextDrawBackgroundColor(gTexture[15], 255); TextDrawFont(gTexture[15], 2); TextDrawSetProportional(gTexture[15], 1); TextDrawSetShadow(gTexture[15], 0); gTexture[16] = TextDrawCreate(334.5000, 214.2667, !"]"); TextDrawLetterSize(gTexture[16], 0.1729, 0.8346); TextDrawAlignment(gTexture[16], 2); TextDrawColor(gTexture[16], 555819519); TextDrawBackgroundColor(gTexture[16], 255); TextDrawFont(gTexture[16], 2); TextDrawSetProportional(gTexture[16], 1); TextDrawSetShadow(gTexture[16], 0); gTexture[17] = TextDrawCreate(260.5000, 176.9333, !"]"); TextDrawLetterSize(gTexture[17], 0.1729, 0.8346); TextDrawAlignment(gTexture[17], 2); TextDrawColor(gTexture[17], 555819519); TextDrawBackgroundColor(gTexture[17], 255); TextDrawFont(gTexture[17], 2); TextDrawSetProportional(gTexture[17], 1); TextDrawSetShadow(gTexture[17], 0); В CallBack OnPlayerConnect: pTexture[playerid] = CreatePlayerTextDraw(playerid, 318.5000, 183.1555, "0%"); PlayerTextDrawLetterSize(playerid, pTexture[playerid], 0.4474, 1.7991); PlayerTextDrawAlignment(playerid, pTexture[playerid], 2); PlayerTextDrawColor(playerid, pTexture[playerid], -1); PlayerTextDrawBackgroundColor(playerid, pTexture[playerid], 255); PlayerTextDrawFont(playerid, pTexture[playerid], 3); PlayerTextDrawSetProportional(playerid, pTexture[playerid], 1); PlayerTextDrawSetShadow(playerid, pTexture[playerid], 0); 3. Создаем CallBack LoadScreenCallBack: forward LoadScreenCallBack(playerid, rate, count); public LoadScreenCallBack(playerid, rate, count) { if(count >= 16) { playerTextureTimer[playerid] = 0; for(new t; t < 18; t++) TextDrawHideForPlayer(playerid, gTexture[t]); PlayerTextDrawHide(playerid, pTexture[playerid]); TogglePlayerControllable(playerid, 1); } else { new string[5], fixcount = count + 1; if(playerTextureTimer[playerid]) playerTextureTimer[playerid] = SetTimerEx("LoadScreenCallBack", rate, 0, "iii", playerid, rate, fixcount); valstr(string, floatround(floatdiv(fixcount*100, 16))); strcat(string, "%"); PlayerTextDrawSetString(playerid, pTexture[playerid], string); } } 4. Создаем stock который будет запускать загрузку текстур: stock ShowPlayerLoadScreen(playerid, time) { if(playerTextureTimer[playerid]) KillTimer(playerTextureTimer[playerid]); PlayerTextDrawSetString(playerid, pTexture[playerid], !"0%"); for(new t; t < 18; t++) TextDrawShowForPlayer(playerid, gTexture[t]); PlayerTextDrawShow(playerid, pTexture[playerid]); TogglePlayerControllable(playerid, 0); playerTextureTimer[playerid] = SetTimerEx(!"LoadScreenCallBack", (1000 * time) / 17, 0, !"iii", playerid, (1000 * time) / 17, 0); } Пример использования данного Загрузчика текстур: ShowPlayerLoadScreen(playerid, 3); - прописываем данный сток с playerid, и временем. Время загрузчика текстур - 3 секунды
  2. Доброе время суток, пользователи CR-MP.RU Автор данной копии: #Salev(#Rips) Копирование на другие строго запрещено! Что отсутствует в данной системе: - Оплата за гараж - P.S Вы должны ее написать сами так как у всех код разный - Респавн автомобиля - P.S Вы тоже должны написать сами так как у всех код разный [spoiler=SCREENSHOT] Дефайны использующийся в коде: #define SPD ShowPlayerDialog #define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0))) Создаем ENUM #define MAX_GARAGE 200 enum gInfo { gID, // Индивидуальный ID gOwner[MAX_PLAYER_NAME], // Хозяин гаража Float:gCar[4],Float:gPEnter[3], // Координаты респавна автомобиля | Координаты для пикапа gCost, // Цена гаража gPrice, // Последняя цена с покупки gPickupC // Сам пикап } new GarageInfo[MAX_GARAGE][gInfo], total_garage = 0; new Text3D:LabelGarage[60]; // 3DText пикапа В OnPlayerKeyStateChange if(PRESSED(KEY_WALK)) { for(new idx = 1; idx <= total_garage; idx++) { if(IsPlayerInRangeOfPoint(playerid, 4,GarageInfo[idx][gPEnter][0], GarageInfo[idx][gPEnter][1], GarageInfo[idx][gPEnter][2])) { new strings[350]; if(!strcmp(GarageInfo[idx][gOwner],"None",true)) { format(strings,sizeof(strings), "{FF9900}\n\nЭтот гараж свободен.{FFFFFF}\nВы хотите купить этот гараж за {FF9900}%i рублей{FFFFFF}\ \n\n{FF9900}Информация{FFFFFF}: Гаражи предназначены только для тех, кто арендует комнаты в частных домах или не имеет дома",GarageInfo[idx][gCost]); SPD(playerid, 63, DIALOG_STYLE_MSGBOX, "{FF9900}Гараж", strings, "Купить", "Закрыть"); } else { format(strings,sizeof(strings), "{FF9900}\n\nЭтот гараж занят.{FFFFFF}\nВладелец: {FF9900}%s{FFFFFF}\nДней оплачено: {FF9900}30{FFFFFF}\n\ Нажмите {FF9900}'Респавн'{FFFFFF} чтобы возратить автомобиль к гаражу. Стоимость: {FF9900}600 рублей.\n\n\ Информация{FFFFFF}: Гаражи предназначены только для тех, кто арендует комнаты в частных домах или не имеет дома",GarageInfo[idx][gOwner]); SPD(playerid, 64, DIALOG_STYLE_MSGBOX, "{FF9900}Гараж", strings, "Респавн", "Закрыть"); } } } } Диалог покупки: case 63: { if(response) { if(!response) return true; if(strcmp(GarageInfo[total_garage][gOwner],"None",true) != 0) return SendClientMessage(playerid,-1,"У гаража уже есть владелец!"); PlayerInfo[playerid][pCash] -= GarageInfo[total_garage][gPrice]; GarageInfo[total_garage][gPrice] = GarageInfo[total_garage][gPrice]; SendClientMessage(playerid, 0xFF9900FF, "Поздравляем с покупкой гаража!"); strmid(GarageInfo[total_garage][gOwner],PlayerInfo[playerid][pName], 0, strlen(PlayerInfo[playerid][pName]), MAX_PLAYER_NAME); new string[128]; format(string,sizeof(string), "UPDATE `garage` SET `gOwner` = '%s', `gPrice` = '%d' WHERE `gID` = '%d'",PlayerInfo[playerid][pName],GarageInfo[total_garage][gPrice]); mysql_function_query(connects, string, false, "", ""); UpDataGarageInfo(total_garage); } } Делаем загрузку гаражей forward LoadGaragePlayer(); public LoadGaragePlayer() { new rows, fields, stringers[84]; cache_get_data(rows, fields); if(!rows) return printf("[SYSTEM-GARAGE]: Гаражи не загружены!"); new idx; for(idx = 1; idx <= rows; idx++) { GarageInfo[idx][gID] = cache_get_field_content_int(idx-1, "gID"); cache_get_field_content(idx-1, "gOwner", GarageInfo[idx][gOwner], connects, 26); GarageInfo[idx][gCar][0] = cache_get_field_content_float(idx-1, "gCarX", connects); GarageInfo[idx][gCar][1] = cache_get_field_content_float(idx-1, "gCarY", connects); GarageInfo[idx][gCar][2] = cache_get_field_content_float(idx-1, "gCarZ", connects); GarageInfo[idx][gCar][3] = cache_get_field_content_float(idx-1, "gCarA", connects); GarageInfo[idx][gPEnter][0] = cache_get_field_content_float(idx-1, "gPEnterX", connects); GarageInfo[idx][gPEnter][1] = cache_get_field_content_float(idx-1, "gPEnterY", connects); GarageInfo[idx][gPEnter][2] = cache_get_field_content_float(idx-1, "gPEnterZ", connects); GarageInfo[idx][gCost] = cache_get_field_content_int(idx-1, "gCost"); GarageInfo[idx][gPrice] = cache_get_field_content_int(idx-1, "gPrice"); GarageInfo[idx][gPickupC] = CreateDynamicPickup(1080,23, GarageInfo[idx][gPEnter][0],GarageInfo[idx][gPEnter][1],GarageInfo[idx][gPEnter][2]); if(!strcmp(GarageInfo[idx][gOwner],"None",true)) { format(stringers,sizeof(stringers), "Номер гаража: {FF9900}%i{FFFFFF}\nВладелец: {FF9900}Отсутствует", GarageInfo[idx][gID]); LabelGarage[idx] = CreateDynamic3DTextLabel(stringers,0xFFFFFFFF,GarageInfo[idx][gPEnter][0],GarageInfo[idx][gPEnter][1],GarageInfo[idx][gPEnter][2],15.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,0); } else { format(stringers,sizeof(stringers), "Номер гаража: {FF9900}%i{FFFFFF}\nВладелец: {FF9900}%s", GarageInfo[idx][gID], GarageInfo[idx][gOwner]); LabelGarage[idx] = CreateDynamic3DTextLabel(stringers,0xFFFFFFFF,GarageInfo[idx][gPEnter][0],GarageInfo[idx][gPEnter][1],GarageInfo[idx][gPEnter][2],15.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,0); } total_garage++; } printf("[SYSTEM-GARAGE]: Гаражи успешно загружены! Количество гаражей: %i", total_garage); return 1; } Делаем сток: stock UpDataGarageInfo(idx) { new stringers[84]; if(!strcmp(GarageInfo[idx][gOwner],"None",true)) { format(stringers,sizeof(stringers), "Номер гаража: {FF9900}%i{FFFFFF}\nВладелец: {FF9900}Отсутствует", GarageInfo[idx][gID]); } else { format(stringers,sizeof(stringers), "Номер гаража: {FF9900}%i{FFFFFF}\nВладелец: {FF9900}%s", GarageInfo[idx][gID], GarageInfo[idx][gOwner]); } UpdateDynamic3DTextLabelText(LabelGarage[idx], -1, stringers); return 1; } Команды на создание и выставление координат кара: CMD:addg(playerid, params[]) { new Float:GaragePos[4]; if(sscanf(params, "d", params[0])) return SCM(playerid, -1, "{FF9900}• [Подсказка]{FFFFFF}: Используйте /addg [цена]"); GetPlayerPos(playerid, GaragePos[0], GaragePos[1], GaragePos[2]); GetPlayerFacingAngle(playerid, GaragePos[3]); GarageInfo[total_garage][gPEnter][0] = GaragePos[0]; GarageInfo[total_garage][gPEnter][1] = GaragePos[1]; GarageInfo[total_garage][gPEnter][2] = GaragePos[2]; GarageInfo[total_garage][gCost] = params[0]; GarageInfo[total_garage][gPickupC] = CreateDynamicPickup(1080,23, GarageInfo[total_garage][gPEnter][0],GarageInfo[total_garage][gPEnter][1],GarageInfo[total_garage][gPEnter][2]); new string[128]; format(string,sizeof(string), "INSERT INTO `garage` (`gPEnterX`,`gPEnterY`,`gPEnterZ`,`gCost`) VALUES ('%f','%f','%f','%i')",GarageInfo[total_garage][gPEnter][0],GarageInfo[total_garage][gPEnter][1],GarageInfo[total_garage][gPEnter][2], params[0]); mysql_function_query(connects, string, true, "", "d", playerid); SCM(playerid, -1, "Создайте кар и встаньте как будет респавниться авто в гараже и пропишите /poscar [id гаража]!"); return 1; } CMD:poscar(playerid, params[]) { if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, -1, "{FF9900}• [Подсказка]{FFFFFF}: Используйте /setposcar [id гаража]"); if(params[0] < 0 || params[0] > 200) return 1; new Float:X,Float:Y,Float:Z,Float:Angle; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle); GarageInfo[params[0]][gCar][0] = X; GarageInfo[params[0]][gCar][1]= Y; GarageInfo[params[0]][gCar][2] = Z; GarageInfo[params[0]][gCar][3] = Angle; SendClientMessage(playerid, -1, "Координаты машины установлены"); new string[258]; format(string, sizeof(string), "UPDATE `garage` SET `gCarX` = '%f', `gCarY` = '%f', `gCarZ` = '%f', `gCarA` = '%f' WHERE gID = '%i'",X,Y,Z,Angle,params[0]); mysql_function_query(connects, string, false, "", ""); return true; } Где происходит подключение к базе данных: mysql_function_query(connects,"SELECT * FROM `garage`", true, "LoadGaragePlayer", ""); Информация о данной системе: MYSQL - R39-2 SSCANF2 - 2.8.1
  3. PriteTV

    [CMD]/givemoney

    Добрый день, форумчане cr-mp.ru Я хочу Вам представить команду /givemoney на DC_CMD + sscanf2: CMD:givemoney(playerid, params[]) { if(PI[playerid][pAdmin] < 8) return SendClientMessage(playerid, 0xFFFFFFFF, !"Команда не обнаружена. Чтобы посмотреть команды используйте:{008000}/menu"); if(sscanf(params, "ii", params[0], params[1])) return SendClientMessage(playerid, 0xFFFF00FF, !"[CMD]: {008000}Используйте {DAA520}/givemoney [ID игрока] [Кол-во денег]"); if(params[0] < 0 || params[0] > 500) return SendClientMessage(playerid, 0x008000FF, !"[Ошибка]: Игрок не в игре."); if(params[1] < 1 || params[1] > 50000000) return SendClientMessage(playerid, 0x008000FF, !"[Ошибка]: Количество денег должно быть от 1 до 50.000.000 рублей"); GivePlayerMoney(params[0], params[1]); return 1; }
  4. Доброго времени суток, уважаемые форумчане. Сегодня я попытался сделать логотип замечательного проекта Criminal Russia RolePlay и панель читеров, как получилось - решать вам. Ссылка на логотип: https://yadi.sk/d/BJNSPkLP3TSP88 ( Пишу с телефона, если будет проблема с ссылкой пишите, исправлю. ) Хочу дополнить, системы часов с датой, панели читеров нету. Придется писать самим. Официальный логотип и панель читеров сделана командой разработчиков Criminal Russia RolePlay ( www.crmprp.ru ). Автор копии логотипа и панели читеров - Андрей Микилов.
  5. Здравствуйте, пользователи форума. Решил слить вам простенькую, но интересную команду для своего сервера, сделал ее буквально за 3 минуты для своего мода. Данная команда позволяет администратору писать от имени игрока. CMD:cmd(playerid, params[]) { //ваши проверки if(sscanf(params, "is[128]", params[0], params[1])) return SCM(playerid, COLOR_WHITE, "Введите: /cmd [id игрока] [текст]"); OnPlayerText(params[0], params[1]); return true; } Автора данной команды не знаю, но в данном виде реализовал ее я.
  6. #Bazuka

    [Метро]

    Это моя личная первая работа не знал с чего начать сам делал с нуля,ну с чего-то все начинают. К всем New new Arzamas; new Arzamas1; new YouCity1; new YouCity; new Beyatov; new Beyatov1; В public OnGameModeInit() YouCity1 = CreatePickup(1318,23,604.7800,711.0667,12.0859,-1); YouCity = CreatePickup(1318,23,1823.5417,-2242.3850,11.2394,0); Beyatov = CreatePickup(1318,23,602.8683,706.5071,12.0859,-1); Beyatov1 = CreatePickup(1318,23,1856.2887,2251.1890,15.6172,0); Arzamas = CreatePickup(1318,23,602.5826,702.4211,12.0859,-1); Arzamas1 = CreatePickup(1318,23,203.7445,828.6365,13.3831,0); В public OnGameModeInit() AddStaticPickup(1239, 2, 1824.7411,-2244.7537,11.0209); В public OnGameModeInit() Create3DTextLabel("{11E9F4}Метро\n {FF0000}Главный Центр",0x00FFFFAA,1823.7743,-2245.0413,14.0500,40.0,0,1); Create3DTextLabel("{11E9F4}Южный",COLOR_GOLD,604.7800,711.0667,12.0859,40.0,0,1); Create3DTextLabel("{11E9F4}Арзамас",COLOR_GOLD,602.5875,702.4209,12.0859,40.0,0,1); Create3DTextLabel("{11E9F4}Батырево",COLOR_GOLD,602.8472,706.4666,12.0859,40.0,0,1); Create3DTextLabel("{11E9F4}Купить билет\n {FF0000}/buybil",COLOR_GOLD,1824.7411,-2244.7537,11.0209,40.0,0,1); В public OnGameModeInit() CreateDynamicObject(19447, 605.34, 709.34, 11.00, 0.00, 90.00, -21.00); CreateDynamicObject(19447, 601.92, 700.38, 11.00, 0.00, 90.00, -21.00); CreateDynamicObject(19463, 606.93, 708.71, 12.72, 0.00, 0.00, -21.00); CreateDynamicObject(19463, 606.34, 716.52, 12.72, 0.00, 0.00, -21.00); CreateDynamicObject(19463, 603.49, 699.72, 12.72, 0.00, 0.00, -21.00); CreateDynamicObject(19463, 607.45, 713.56, 12.72, 0.00, 0.00, 69.00); CreateDynamicObject(19463, 600.47, 701.38, 12.72, 0.00, 0.00, -21.00); CreateDynamicObject(19463, 603.82, 701.44, 12.72, 0.00, 0.00, 69.00); CreateDynamicObject(1533, 604.87, 712.64, 11.06, 0.00, 0.00, 249.00); CreateDynamicObject(10121, 605.55, 713.05, 11.56, 0.00, 0.00, -111.00); CreateDynamicObject(10121, 607.75, 712.23, 11.56, 0.00, 0.00, 68.00); CreateDynamicObject(10121, 606.55, 713.37, 11.56, 0.00, 0.00, 159.00); CreateDynamicObject(10121, 608.51, 712.61, 11.56, 0.00, 0.00, 159.00); CreateDynamicObject(1533, 604.34, 711.26, 11.06, 0.00, 0.00, 249.00); CreateDynamicObject(1533, 602.51, 706.70, 11.06, 0.00, 0.00, 249.00); CreateDynamicObject(1533, 603.04, 708.08, 11.06, 0.00, 0.00, 249.00); CreateDynamicObject(10121, 603.62, 708.28, 11.56, 0.00, 0.00, -111.00); CreateDynamicObject(10121, 604.00, 709.26, 11.56, 0.00, 0.00, -111.00); CreateDynamicObject(19417, 603.41, 708.91, 12.90, 0.00, 0.00, -21.00); CreateDynamicObject(19466, 603.49, 708.97, 12.84, 0.00, 0.00, -21.00); CreateDynamicObject(10121, 602.15, 704.73, 11.56, 0.00, 0.00, -111.00); CreateDynamicObject(10121, 601.41, 702.80, 11.56, 0.00, 0.00, -111.00); CreateDynamicObject(10121, 603.90, 701.78, 11.56, 0.00, 0.00, 68.00); CreateDynamicObject(10121, 604.66, 703.69, 11.56, 0.00, 0.00, 69.00); CreateDynamicObject(19371, 604.30, 711.25, 15.29, 0.00, 0.00, -21.00); CreateDynamicObject(19371, 602.44, 706.53, 15.29, 0.00, 0.00, -22.00); CreateDynamicObject(19463, 604.04, 709.80, 15.29, 0.00, 16.00, -21.00); CreateDynamicObject(19463, 600.62, 700.87, 15.29, 0.00, 16.00, -21.00); CreateDynamicObject(19463, 602.79, 702.17, 15.29, 0.00, 16.00, 69.00); CreateDynamicObject(19463, 606.42, 713.68, 15.29, 0.00, 16.00, -111.00); CreateDynamicObject(19463, 606.67, 708.74, 15.29, 0.00, -16.00, -21.00); CreateDynamicObject(19463, 603.23, 699.76, 15.29, 0.00, -16.00, -21.00); CreateDynamicObject(19463, 605.61, 709.18, 14.94, 0.00, 90.00, -21.00); CreateDynamicObject(19463, 602.06, 700.29, 14.94, 0.00, 90.00, -21.00); CreateDynamicObject(1533, 601.87, 702.29, 11.06, 0.00, 0.00, -21.00); CreateDynamicObject(4597, 1823.57, -2233.22, 9.96, 0.00, 0.00, 180.00); CreateDynamicObject(19466, 1822.54, -2242.84, 13.05, 0.00, 90.00, 90.00); CreateDynamicObject(19466, 1824.62, -2242.84, 13.05, 0.00, 90.00, 90.00); CreateDynamicObject(19466, 1824.61, -2244.28, 13.05, 0.00, 90.00, 90.00); CreateDynamicObject(19466, 1822.52, -2244.29, 13.05, 0.00, 90.00, 90.00); CreateDynamicObject(1986, 1824.63, -2232.73, 9.63, 0.00, 0.00, 0.00); В public OnPlayerPickUpPickup(playerid, pickupid) if(pickupid == YouCity1) { SetPlayerInterior(playerid, 0); SetPlayerPos(playerid, 1823.1112,-2245.1965,11.0209); } if(pickupid == YouCity) { if(PlayerInfo[playerid][pMetro] != 1)//Проверка на билет return SendClientMessage(playerid, -1, "У вас нет билета");//-1 значит,что билета нет SetPlayerInterior(playerid, 0); SetPlayerPos(playerid, 606.5397,710.6315,12.0859); } if(pickupid == Beyatov) { SetPlayerInterior(playerid, 0); SetPlayerPos(playerid, 1858.3896,2251.1362,15.6172); } if(pickupid == Beyatov1) { SetPlayerInterior(playerid, 0); SetPlayerPos(playerid, 604.9130,706.0921,12.0859); } if(pickupid == Arzamas) { SetPlayerInterior(playerid, 0); SetPlayerPos(playerid, 203.9170,826.8352,12.8115); } if(pickupid == Arzamas1) { SetPlayerInterior(playerid, 0); SetPlayerPos(playerid, 603.6325,704.3224,12.0859); } В enum pInfo pMetro, В public OnPlayerRegister(playerid, password[]) format(var, 32, "Metro=%d\n",PlayerInfo[playerid][pMetro]);fwrite(hFile, var); Каждый код будет быть у всех другой MYSQL,mxINI Автор: Artem_Bandit Идея лично моя не где не брал,сам всё с нуля делал Забыл команда сама: В public OnPlayerCommandText(playerid, cmdtext[]) if(strcmp(cmd, "/buybil", true) == 0) { if(IsPlayerConnected(playerid)) { if(playerid != INVALID_PLAYER_ID) { if(PlayerToPoint(10.0, playerid,1824.7411,-2244.7537,11.0209)) format(string, sizeof(string), "Вы купили билет", sendername); PlayerInfo[playerid][pMetro] = 1; GiveMoney(playerid, -400); SendClientMessage(playerid, COLOR_WHITE, string); } } return true; }
  7. Здравствуйте, пользователи форума. Решил добавить на форум команды такие как: /me /do /try /todo /n /s Команда: /me CMD:me(playerid, params[]){ if(sscanf(params, "s[118]", params[0])) return SCM(playerid, COLOR_GEY, "Используйте /me [текст]"); new string[144]; format(string, sizeof(string), "%s %s", player_info[playerid][NAME], params[0]); ProxDetector(20.0, playerid, string, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF); SetPlayerChatBubble(playerid, params[0], 0xDE92FFFF, 20, 7500); return 1;} Команда: /do CMD:do(playerid, params[]){ if(sscanf(params, "s[116]", params[0])) return SCM(playerid, COLOR_GREY, "Используйте /do [текст]"); new string[144]; format(string, sizeof(string), "%s (%s)", params[0], player_info[playerid][NAME]); ProxDetector(20.0, playerid, string, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF); SetPlayerChatBubble(playerid, params[0], 0xDE92FFFF, 20, 7500); return 1;} Команда: /try CMD:try(playerid, params[]){ if(sscanf(params, "s[99]", params[0])) return SCM(playerid, COLOR_GREY, "Используйте /try [текст]"); new string[144]; format(string, sizeof(string), "%s %s | %s", player_info[playerid][NAME], params[0], (!random(2)) ? ("{FF0000}Неудачно") : "{32CD32}Удачно"); ProxDetector(20.0, playerid, string, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF); return 1;} Команда: /todo CMD:todo(playerid, params[]){ if(sscanf(params, "s[95]", params[0])) return SCM(playerid, COLOR_GREY, "Используйте /todo [текст*действие]"); if(strlen(params) > 95) return SCM(playerid, C_GREY, "Слишком длинный текст и действие"); new message[96]; strmid(message, params, 0, sizeof(message)); new regex:rg_todocheck = regex_new("^[a-zA-Zа-яА-Я.-_,\\s]{2,48}\\*[a-zA-Zа-яА-Я.-_,\\s]{2,48}$"); if(regex_check(message, rg_todocheck)) { new star = strfind(message, "*"); new action[50]; strmid(action, message, star+1, sizeof(message)); strdel(message, star, sizeof(message)); new string[144]; format(string, sizeof(string), "- '%s' - {DE92FF}сказал%s %s, %s", message, (player_info[playerid][SEX] == 1) ? ("") : ("а"), player_info[playerid][NAME], action); ProxDetector(20.0, playerid, string, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE); } else SCM(playerid, COLOR_GREY, "Используйте /todo [текст*действие]"); regex_delete(rg_todocheck); return 1;} Команда: /n CMD:n(playerid, params[]){ if(sscanf(params, "s[107]", params[0])) return SCM(playerid, COLOR_GREY, "Используйте /n [сообщение]"); new string[144]; format(string, sizeof(string), "(( %s[%d]: %s ))", player_info[playerid][NAME], playerid, params[0]); ProxDetector(20.0, playerid, string, 0xCCCC99FF, 0xCCCC99FF, 0xCCCC99FF, 0xCCCC99FF, 0xCCCC99FF); return 1;} Команда: /s CMD:s(playerid, params[]){ if(sscanf(params, "s[105]", params[0])) return SCM(playerid, COLOR_GREY, "Используйте /s [текст]"); new string[144]; format(string, sizeof(string), "%s[%d] крикнул: %s", player_info[playerid][NAME], playerid, params[0]); ProxDetector(30.0, playerid, string, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE); if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { ApplyAnimation(playerid, "ON_LOOKERS", "shout_01", 4.1,0,0,0,0,0); } SetPlayerChatBubble(playerid, params[0], COLOR_WHITE, 25, 7500); return 1;} Это в конец мода, если будут ошибки stock ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5){ if(IsPlayerConnected(playerid)) { new Float:posx;new Float:posy;new Float:posz;new Float:oldposx;new Float:oldposy;new Float:oldposz;new Float:tempposx;new Float:tempposy;new Float:tempposz; GetPlayerPos(playerid, oldposx, oldposy, oldposz); foreach(new i: Player) { if(IsPlayerConnected(i)) { if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)) { GetPlayerPos(i, posx, posy, posz); tempposx = (oldposx -posx); tempposy = (oldposy -posy); tempposz = (oldposz -posz); if(((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16))) SCM(i, col1, string); else if(((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8))) SCM(i, col2, string); else if(((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4))) SCM(i, col3, string); else if(((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2))) SCM(i, col4, string); else if(((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) SCM(i, col5, string); } } } } return 1;} Автор команд: #meow P.S: use: Pawn.CMD, sscanf. Pawn.Regex
  8. Доброе время суток, пользователи портала. Хочу предоставить TextDraw табличку Green Zone специально для Вашего сервера. P.s приходят глупые, но интересные идеи для ТД green zone Автор: #Rips Ссылка на файлы: pastebin ScreenShot/Video: Перейти Редактор: TDEditor 2.3
  9. Ко всем переменным new new GruzPickUp; new GruzRabota[MAX_PLAYERS]; new GruzSkin[MAX_PLAYERS]; В OnGameModeInit(); GruzPickUp = CreatePickUp(1275, 23, x, y, z,);//Место устройства на работу x, y, z - свои координаты Create3DTextLabel("Устройство на работу грузчика", 0xFFFFFFFF, x, y, z, 6.5, 0);// x, y, z - свои координаты В OnPlayerPickUpPickup(playerid, pickupid) if(pickupid = GruzPickup) { if(GruzRabota[playerid] == 0) { SPD(playerid, 1, DSM, "{FFFFFF}Устройство на работу", "Вы действительно хотите устроиться на работу грузчика", "Согласен", "Отмена"); } else { SPD(playerid, 1, DSM, "{FFFFFF}Увольнение с работы", "Вы действительно хотите уволиться с работы грузчика", "Да", "Нет"); } } В OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) if(dialogid == 1) { if(!response) return true; if(GruzRabota[playerid] = 0) { GruzRabota[playerid] = 1; GruzSkin[playerid] = GetPlayerSkin(playerid); SetPlayerSkin(playerid, 260); SetPlayerCheckpoint(playerid, x, y, z, 1.5);// x, y, z - свои координаты SCM(playerid, 0xFFFF00FF, "Вы успешно устроились на работу грузчика!"); SCM(playerid, 0xFF8000FF, "Теперь отправляйтесь за мешками. Место обозначено на карте!"); return 1; } else { GruzRabota[playerid] = 0; SetPlayerSkin(playerid, 260); DisablePlayerCheckpoint(playerid); SCM(playerid, 0xFF8000FF, "Вы успешно уволились с работы грузчика"); } } Далее в OnPlayerEnterCheckpoint(playerid) if(GruzRabota[playerid] == 1) { SCM(playerid, 0xFFFFFFFF, "Вы успешно взяли мешок, отправляйтесь на склад!"); DisablePlayerCheckpoint(playerid); GruzRabota[playerid] == 2; SetPlayerCheckpoint(playerid, x, y, z);// x, y, z - свои координаты return true; } if(GruzRabota[playerid] == 2) { new money = random(150); GivePlayerMoney(playerid, money); DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, x, y, z);// x, y, z - свои координаты GruzRabota[playerid] == 1; SCM(playerid, 0xFFFFFFFF, "Вы успешно принесли мешок, теперь отправляйтесь за другим мешком.!"); return true; } В OnPlayerConnect(playerid) GruzRabota[playerid] == 0; GruzSkin[playerid] == 0; Если будет ругаться на SCM, SPD, DSM, то в #define SCM SendClientMessage #define SPD ShowPlayerDialog #define DSM DIALOG_STYLE_MSGBOX АВТОР: Я. Т.е. ВУДИК или же Vladimir_Kulkov Сразу скажи, что это основа только лишь. Нет выдачи "мешков" стоит рандомная функция выдачи денег за один мешок. И нужно добавить будет таймер на пикап устройства, т.к. он не дает уйти от того места где устроился. Так же где SPD(playerid, 1, DSM, "{FFFFFF}Увольнение с работы", "Вы действительно хотите уволиться с работы грузчика", "Да", "Нет"); Вам нужно будет поменять id диалога. я поставил 1. Если хотите могу дописать все полностью. Раз уж Dexter`у не понадобилось, я сливаю в открытый доступ
  10. Автор: ShiGanKa. Время работы: 15 минут. Скачать .pwn версию : https://yadi.sk/d/q4dGc0mx3Kqj6c Скачать .itd версию (для дальнейшего редактирования): https://yadi.sk/d/UfY_bv5j3KqiVA
  11. Многие наверно видели на разных проектах префиксы различные для админов? так вот я вам сегодня расскажу как сделать с сохранением их. Для полноценной работы нужно Mysql r39-6 или выше , а также ZCMD или DC_CMD ко всем define #define SendMes(%0,%1,%2,%3) format(format_stra, 144, %2,%3), SendClientMessage(%0, %1, format_stra) #define GetName(%0) PI[%0][pName] Далее ищем где у вас переменные аккаунта например, у меня это pInfo. Добавляем pAdmprefix[32] далее мы в OnPlayerConnect добавляем значение , чтоб не кому не давался префикс. PlayerInfo[playerid][pAdmprefix] = EOS; Для того чтоб наш префикс сохранялся , создаем в бд следующую строку. ALTER TABLE accounts ADD Admprefix varchar(32); После того как создали , новое значение в базе данных с аккаунтом, нам надо сделать загрузку префикса. Для этого в OnPlayerLogin добавляем следующий код. cache_get_field_content(0, "Admprefix", PlayerInfo[playerid][pAdmprefix], dbHandle, 32); // Загрузка префкиса админа На этом мы закончили основную часть системы , далее нам нужна команда для создание префиксов и добавить в чат админов префикс отображение. CMD:setprefix(playerid,params[]) { if(PlayerInfo[playerid][pAdmin] > 1) return 1; if(sscanf(params,"ds[32]", params[0],params[1])) return SendClientMessage(playerid, -1, "/setprefix [Ид игрока] [Префикс]"); if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid,-1,"игрок не администратор"); if(IsPlayerConnected(params[0])) // Проверка на то,что игрок приконнектился { strmid(PlayerInfo[params[0]][pAdmprefix] ,params[1], 0, 32, 32); // SendMes(params[0],0xEEE9E9FF,"Вы установили админу %s префикс: %s",GetName(playerid),PlayerInfo[params[0]][pAdmprefix]); } return 1; } Ну и последние это команда для отображение адм с префиксом. CMD:admins(playerid, params[]) { if(PlayerInfo[playerid][pAdmin] < 1) return 1; SendClientMessage(playerid,-1,"Администраторы онлайн:"); foreach(Player, i) { if(PlayerInfo[i][pAdmin]) { new temp[144]; format(temp,sizeof(temp),"%s[%d][%d lvl] [%s]\n",GetName(playerid),i,PlayerInfo[i][pAdmin],PlayerInfo[i][pAdmprefix]); SendClientMessage(playerid, -1, temp); } else { SendClientMessage(playerid, -1, "- В сети нет администраторов"); } } return 1; } Ну и пример использованья в другом месте этого префикса new temp[144]; format(temp,sizeof(temp),"%s",PlayerInfo[i][pAdmprefix]);// PlayerInfo[i][pAdmprefix] будет выводить префикс админа SendClientMessage(playerid, -1, temp); На этом все. Автор: #pawno Будут ошибки пишите помогу.
  12. Здравствуйте уважаемые пользователи CR-MP.RU Сегодня я вам покажу , как добавить ботов на сервер (Автор: Neat) Для начало, скачаем необходимые файлы ---------------------------------------------------------------------------------------------------------------------------------------- Файлы npc_record.pwn и npc_record.amx копируем в filterscripts, а a_npc.inc в /pawno/include. Далее открываем server.cfg и в строке filterscripts прописываем npc_record, также изменяем maxnpc на количество ботов на сервере. Далее открываем мод через pawno.exe и после #include <a_samp> добавляем #include <a_npc> и компилируем мод. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- В этом уроке мы будем делать бота который ездит на машине по заданному маршруту. Заходим на сервер, входим как RCON администратор, садимся в машину и как только вы готовы начать записывать бота - вводим команду /vrecord [имя бота] (не используйте кириллицу в названии бота). Запись началась, ездим по нужному нам маршруту и когда нужно остановить запись бота - вводим команду /srecord и запись останавливается. Выходим из игры и заходим в scriptfiles, там вы увидите названия бота.rec копируем этот файл в /npcmodes/recordings. Создаем чистый .pwn файл и вносим в него следующий код: #define RECORDING "NameNPC" //Имя вашего записанного файла из scriptfiles без расширения #define RECORDING_TYPE 1 //1 - если путь записан на машине, 2 - пешком #include main(){} public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING); #if RECORDING_TYPE == 1 public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING); public OnNPCExitVehicle() StopRecordingPlayback(); #else public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING); . #endif Компилируем и закрываем. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Открываем свой мод и ко всем глобальным переменным добавляем (название может быть любое, я взял ProverkaNPC): new ProverkaNPC Далее идем в public OnGameModeInit() и добавляем: ConnectNPC("любое имя бота","название файла из scriptfiles без расширения"); ProverkaNPC = CreateVehicle(400,0.0,0.0,5.0,0.0,3,3,5000);//Координаты изменять не надо, можете изменить только модель ТС и цвет Далее идем в public OnPlayerSpawn(playerid) и добавляем: if(IsPlayerNPC(playerid)) { new npcname[MAX_PLAYER_NAME]; GetPlayerName(playerid,npcname,sizeof(npcname)); if(!strcmp(npcname,"имя указанное в ConnectNPC",true)) { PutPlayerInVehicle(playerid,ProverkaNPC,0); } return 1; } Если при подключении бота, его выкидывает с сервера из-за того, что у вас система регистрации, то при регистрации нужно вставить этот код: if(IsPlayerNPC(playerid)) return 1; Всё! Если вы всё сделали правильно, то у вас всё должно работать. Файлы для ботов!.rar
  13. Доброго времени суток, пользователи и посетители форума! Хочу предоставить вам созданную мной когда-то копию логотипа со старого мода Criminal Russia RolePlay (2014-2016). Это - всего лишь копия, настоящая версия логотипа находится только у команды CR-Team. Что хочу отметить, мне очень нравился данный проект с 2014 - 2016. После глобального обновления, я даже как-то пробовал разрабатывать с командой копию старого игрового мода, чтобы проводить свое свободное время там, играя с друзьями, но правда спустя время забросил. Автор идеи данного логотипа: CR-Team. Автор копии логотипа: mikilov. (При копировании темы и его содержимого, указывать автора копии логотипа.) [spoiler=Код] new Text:Logotip[1]; Logotip[0] = TextDrawCreate(42.000286, 425.600097, "WWW.~y~CR~w~-RESTORE.~y~RU"); TextDrawLetterSize(Logotip[0], 0.321999, 1.052443); TextDrawAlignment(Logotip[0], 1); TextDrawColor(Logotip[0], -1); TextDrawSetShadow(Logotip[0], 0); TextDrawSetOutline(Logotip[0], 1); TextDrawBackgroundColor(Logotip[0], 51); TextDrawFont(Logotip[0], 3); TextDrawSetProportional(Logotip[0], 1); Logotip[1] = TextDrawCreate(551.333190, 10.370526, "SERVER ~Y~1"); TextDrawLetterSize(Logotip[1], 0.260666, 1.355257); TextDrawAlignment(Logotip[1], 1); TextDrawColor(Logotip[1], -1); TextDrawSetShadow(Logotip[1], 0); TextDrawSetOutline(Logotip[1], 1); TextDrawBackgroundColor(Logotip[1], 51); TextDrawFont(Logotip[1], 2); TextDrawSetProportional(Logotip[1], 1);
  14. Здравствуйте уважаемые пользователи! Я решил представить вам часть кода,который позволяет личному авто сохранять свои позиции(даже после рестарта) Взято с другого портала В OnPlayerExitVehicle(playerid, vehicleid): new playername[MAX_PLAYER_NAME]; new Float:x,Float:y,Float:z,Float:a; new cars; GetPlayerName(playerid, playername, sizeof(playername)); if(!strcmp(playername, CarInfo[GetRealID(cars)][cOwner], true) || !strcmp(playername, CarInfo[GetRealID(cars)][cNick1], true)) { if(IsPlayerInAnyVehicle(playerid)) { cars = GetPlayerVehicleID(playerid) ; GetVehiclePos(cars,x, y, z); GetVehicleZAngle(cars, a); } new world = GetPlayerVirtualWorld(playerid); new inter = GetPlayerInterior(playerid); CarInfo[GetRealID(cars)][cWorld] = world; CarInfo[GetRealID(cars)][cInter] = inter; CarInfo[GetRealID(cars)][cPx] = x; CarInfo[GetRealID(cars)][cPy] = y; CarInfo[GetRealID(cars)][cPz] = z; CarInfo[GetRealID(cars)][cPa] = a; SaveCar(GetRealID(cars)); }
  15. Добры день дорогие форумчане вот решил выложить свою вырезку системы подъездов из CRMP|RP. И так приступим! ко всем forward: forward UpdatePodezd(); ко всем new: new lift1fordom1; new dom1vihod; ко всем enum: enum poInfo { Float:poiX, Float:poiY, Float:poiZ, poFirst, poSecond, poTherd, poFour, poFive, poSix, poSeven, poEight, poNine, poTen, poPic, poAllstate, poWwoarld, poInt, }; new Podezd[100][poInfo]; //подъезды после new allhouse: new Allpodezd = 0; Дальше ищем if(newkeys & KEY_SPRINT) И после этого вставляем for(new pod = 1; pod <= Allpodezd; pod++) { if(IsPlayerInRangeOfPoint(playerid,1.0,Podezd[pod][poiX],Podezd[pod][poiY],Podezd[pod][poiZ]) && GetPlayerVirtualWorld(playerid) == Podezd[pod][poWwoarld]) { SetPlayerVirtualWorld(playerid,Podezd[pod][poFirst]); SetPlayerPos(playerid,2337.6519,-1720.1720,24.7105); return 1; } } ко всем диалогам: if(dialogid==3910) { if(response) { if(listitem == 0) { new wot = GetPlayerVirtualWorld(playerid); wot = wot/10; SetPlayerVirtualWorld(playerid,Podezd[wot][poFirst]); SetPlayerPos(playerid,2333.5459,-1717.8135,24.7109); } if(listitem == 1) { new wot = GetPlayerVirtualWorld(playerid); wot = wot/10; SetPlayerVirtualWorld(playerid,Podezd[wot][poSecond]); SetPlayerPos(playerid,2333.5459,-1717.8135,24.7109); } if(listitem == 2) { new wot = GetPlayerVirtualWorld(playerid); wot = wot/10; SetPlayerVirtualWorld(playerid,Podezd[wot][poTherd]); SetPlayerPos(playerid,2333.5459,-1717.8135,24.7109); } if(listitem == 3) { new wot = GetPlayerVirtualWorld(playerid); wot = wot/10; SetPlayerVirtualWorld(playerid,Podezd[wot][poFour]); SetPlayerPos(playerid,2333.5459,-1717.8135,24.7109); } if(listitem == 4) { new wot = GetPlayerVirtualWorld(playerid); wot = wot/10; SetPlayerVirtualWorld(playerid,Podezd[wot][poFive]); SetPlayerPos(playerid,2333.5459,-1717.8135,24.7109); } if(listitem == 5) { new wot = GetPlayerVirtualWorld(playerid); wot = wot/10; SetPlayerVirtualWorld(playerid,Podezd[wot][poSix]); SetPlayerPos(playerid,2333.5459,-1717.8135,24.7109); } if(listitem == 6) { new wot = GetPlayerVirtualWorld(playerid); wot = wot/10; SetPlayerVirtualWorld(playerid,Podezd[wot][poSeven]); SetPlayerPos(playerid,2333.5459,-1717.8135,24.7109); } if(listitem == 7) { new wot = GetPlayerVirtualWorld(playerid); wot = wot/10; SetPlayerVirtualWorld(playerid,Podezd[wot][poEight]); SetPlayerPos(playerid,2333.5459,-1717.8135,24.7109); } if(listitem == 8) { new wot = GetPlayerVirtualWorld(playerid); wot = wot/10; SetPlayerVirtualWorld(playerid,Podezd[wot][poNine]); SetPlayerPos(playerid,2333.5459,-1717.8135,24.7109); } if(listitem == 9) { new wot = GetPlayerVirtualWorld(playerid); wot = wot/10; SetPlayerVirtualWorld(playerid,Podezd[wot][poTen]); SetPlayerPos(playerid,2333.5459,-1717.8135,24.7109); } } return 1; } в public OnGameModeInit() LoadPodezd(); в public OnPlayerPickUpPickup(playerid, pickupid): for(new pod = 1; pod <= Allpodezd; pod++) { if(IsPlayerInRangeOfPoint(playerid,2.0,Podezd[pod][poiX],Podezd[pod][poiY],Podezd[pod][poiZ])) { GameTextForPlayer(playerid,"~w~мA„–…ЏE ~r~~k~~PED_SPRINT~",5000,1); return 1; } } в public OnPlayerPickUpPickup(playerid, pickupid): if(pickupid == lift1fordom1) { new wot = GetPlayerVirtualWorld(playerid); wot = wot/10; if(Podezd[wot][poAllstate] == 10) { ShowPlayerDialog(playerid,3910,DIALOG_STYLE_LIST,"Выберите этаж!","1 этаж\n2 этаж\n3 этаж\n4 этаж\n5 этаж\n6 этаж\n7 этаж\n8 этаж\n9 этаж\n10 этаж","выбрать","Отмена"); return 1; } if(Podezd[wot][poAllstate] == 9)return ShowPlayerDialog(playerid,3910,DIALOG_STYLE_LIST,"Выберите этаж!","1 этаж\n2 этаж\n3 этаж\n4 этаж\n5 этаж\n6 этаж\n7 этаж\n8 этаж\n9 этаж","выбрать","Отмена"); if(Podezd[wot][poAllstate] == 8)return ShowPlayerDialog(playerid,3910,DIALOG_STYLE_LIST,"Выберите этаж!","1 этаж\n2 этаж\n3 этаж\n4 этаж\n5 этаж\n6 этаж\n7 этаж\n8 этаж","выбрать","Отмена"); if(Podezd[wot][poAllstate] == 7)return ShowPlayerDialog(playerid,3910,DIALOG_STYLE_LIST,"Выберите этаж!","1 этаж\n2 этаж\n3 этаж\n4 этаж\n5 этаж\n6 этаж\n7 этаж","выбрать","Отмена"); if(Podezd[wot][poAllstate] == 6)return ShowPlayerDialog(playerid,3910,DIALOG_STYLE_LIST,"Выберите этаж!","1 этаж\n2 этаж\n3 этаж\n4 этаж\n5 этаж\n6 этаж","выбрать","Отмена"); if(Podezd[wot][poAllstate] == 5)return ShowPlayerDialog(playerid,3910,DIALOG_STYLE_LIST,"Выберите этаж!","1 этаж\n2 этаж\n3 этаж\n4 этаж\n5 этаж","выбрать","Отмена"); if(Podezd[wot][poAllstate] == 4)return ShowPlayerDialog(playerid,3910,DIALOG_STYLE_LIST,"Выберите этаж!","1 этаж\n2 этаж\n3 этаж\n4 этаж","выбрать","Отмена"); if(Podezd[wot][poAllstate] == 3)return ShowPlayerDialog(playerid,3910,DIALOG_STYLE_LIST,"Выберите этаж!","1 этаж\n2 этаж\n3 этаж","выбрать","Отмена"); if(Podezd[wot][poAllstate] == 2)return ShowPlayerDialog(playerid,3910,DIALOG_STYLE_LIST,"Выберите этаж!","1 этаж\n2 этаж","выбрать","Отмена"); if(Podezd[wot][poAllstate] == 1)return ShowPlayerDialog(playerid,3910,DIALOG_STYLE_LIST,"Выберите этаж!","1 этаж","выбрать","Отмена"); } if(pickupid == dom1vihod) { new wot = GetPlayerVirtualWorld(playerid); wot = wot/10; SetPlayerPos(playerid,Podezd[wot][poiX],Podezd[wot][poiY],Podezd[wot][poiZ]); SetPlayerVirtualWorld(playerid,Podezd[wot][poWwoarld]); return 1; } ко всем командам: if(strcmp(cmd, "/addpod", true) == 0) { if(PlayerInfo[playerid][pAdmin] < 9) return SendClientMessage(playerid, -1, "У вас нет прав на использование этой команды!"); if(dostup[playerid] != 1) { ShowPlayerDialog(playerid,2934,DIALOG_STYLE_INPUT,"Доступ администратора","Введите пароль от административной панели","Ок","Отмена"); return 1; } { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /addpod [колличество этажей]"); new money = strval(tmp); if(money < 1||money > 10)return SendClientMessage(playerid, COLOR_GRAD2, "Не менее 1 и не более 10!"); Allpodezd++; GetPlayerPos(playerid, Podezd[Allpodezd][poiX],Podezd[Allpodezd][poiY],Podezd[Allpodezd][poiZ]); Podezd[Allpodezd][poFirst] = Allpodezd*10; Podezd[Allpodezd][poSecond] = Allpodezd*10+1; Podezd[Allpodezd][poTherd] = Allpodezd*10+2; Podezd[Allpodezd][poFour] = Allpodezd*10+3; Podezd[Allpodezd][poFive] = Allpodezd*10+4; Podezd[Allpodezd][poSix] = Allpodezd*10+5; Podezd[Allpodezd][poSeven] = Allpodezd*10+6; Podezd[Allpodezd][poEight] = Allpodezd*10+7; Podezd[Allpodezd][poNine] = Allpodezd*10+8; Podezd[Allpodezd][poTen] = Allpodezd*10+9; Podezd[Allpodezd][poWwoarld] = GetPlayerVirtualWorld(playerid); Podezd[Allpodezd][poInt] = GetPlayerInterior(playerid); Podezd[Allpodezd][poAllstate] = money; new iniOpen = ini_openFile("podezd.cfg"); ini_setInteger(iniOpen, "AllPodezd", Allpodezd); ini_closeFile(iniOpen); SavePodezd(Allpodezd); UpdatePodezd(); SendClientMessage(playerid, COLOR_GRAD2, "Подъезд успешно создан"); return 1; } } ко всем stock: stock LoadPodezd() { new ids[32]; new iniOpens = ini_openFile("podezd.cfg"); ini_getInteger(iniOpens, "AllPodezd", Allpodezd); ini_closeFile(iniOpens); if(Allpodezd != 0) { for(new pod = 1; pod <= Allpodezd; pod++) { format(ids,sizeof(ids),"podezde/%d.ini",pod); new iniOpen = ini_openFile(ids); ini_getFloat(iniOpen, "poiX", Podezd[pod][poiX]); ini_getFloat(iniOpen, "poiY", Podezd[pod][poiY]); ini_getFloat(iniOpen, "poiZ", Podezd[pod][poiZ]); ini_getInteger(iniOpen, "poFirst", Podezd[pod][poFirst]); ini_getInteger(iniOpen, "poSecond", Podezd[pod][poSecond]); ini_getInteger(iniOpen, "poTherd", Podezd[pod][poTherd]); ini_getInteger(iniOpen, "poFour", Podezd[pod][poFour]); ini_getInteger(iniOpen, "poFive", Podezd[pod][poFive]); ini_getInteger(iniOpen, "poSix", Podezd[pod][poSix]); ini_getInteger(iniOpen, "poSeven", Podezd[pod][poSeven]); ini_getInteger(iniOpen, "poEight", Podezd[pod][poEight]); ini_getInteger(iniOpen, "poNine", Podezd[pod][poNine]); ini_getInteger(iniOpen, "poTen", Podezd[pod][poTen]); ini_getInteger(iniOpen, "poAllstate", Podezd[pod][poAllstate]); ini_getInteger(iniOpen, "poWwoarld", Podezd[pod][poWwoarld]); ini_getInteger(iniOpen, "poInt", Podezd[pod][poInt]); ini_closeFile(iniOpen); new p[64]; format(p,64,"{d2d275}Подъезд номер: {7ba05b}%d",pod); Create3DTextLabel(p,COLOR_BLUE,Podezd[pod][poiX],Podezd[pod][poiY],Podezd[pod][poiZ],50.0,0,1); Podezd[pod][poPic] = CreateDynamicPickup(1318,23,Podezd[pod][poiX], Podezd[pod][poiY], Podezd[pod][poiZ],Podezd[pod][poWwoarld],Podezd[pod][poInt]); } } return 1; } stock UpdatePodezd() { for(new pod = 1; pod <= Allpodezd; pod++) { Delete3DTextLabel(Text3D:pod); DestroyDynamicPickup(Podezd[pod][poPic]); new p[64]; format(p,64,"{d2d275}Подъезд номер: {7ba05b}%d",pod); Create3DTextLabel(p,COLOR_BLUE,Podezd[pod][poiX],Podezd[pod][poiY],Podezd[pod][poiZ],50.0,Podezd[pod][poWwoarld],Podezd[pod][poInt]); Podezd[pod][poPic] = CreateDynamicPickup(1318,23,Podezd[pod][poiX], Podezd[pod][poiY], Podezd[pod][poiZ],Podezd[pod][poWwoarld],Podezd[pod][poInt]); } return 1; } Чуть дальше прошлого stock: stock SavePodezd(podezde) { new ids[32]; format(ids,sizeof(ids),"podezde/%d.ini",podezde); new iniOpen; iniOpen = ini_openFile(ids); if(iniOpen == -1 || iniOpen == -2) iniOpen = ini_createFile(ids); ini_setFloat(iniOpen, "poiX", Podezd[podezde][poiX]); ini_setFloat(iniOpen, "poiY", Podezd[podezde][poiY]); ini_setFloat(iniOpen, "poiZ", Podezd[podezde][poiZ]); ini_setInteger(iniOpen, "poFirst", Podezd[podezde][poFirst]); ini_setInteger(iniOpen, "poSecond", Podezd[podezde][poSecond]); ini_setInteger(iniOpen, "poTherd", Podezd[podezde][poTherd]); ini_setInteger(iniOpen, "poFour", Podezd[podezde][poFour]); ini_setInteger(iniOpen, "poFive", Podezd[podezde][poFive]); ini_setInteger(iniOpen, "poSix", Podezd[podezde][poSix]); ini_setInteger(iniOpen, "poSeven", Podezd[podezde][poSeven]); ini_setInteger(iniOpen, "poEight", Podezd[podezde][poEight]); ini_setInteger(iniOpen, "poNine", Podezd[podezde][poNine]); ini_setInteger(iniOpen, "poTen", Podezd[podezde][poTen]); ini_setInteger(iniOpen, "poAllstate", Podezd[podezde][poAllstate]); ini_setInteger(iniOpen, "poWwoarld", Podezd[podezde][poWwoarld]); ini_setInteger(iniOpen, "poInt", Podezd[podezde][poInt]); ini_closeFile(iniOpen); return 1; } К маппингу сервера: CreateObject(2142, 2335.3999, -1717.69995, 25.5, 0, 0, 0); Вот и всё. Автор: Неизвестен
  16. Всем доброе утро дороги пользователи портала CR-MP Сегодня хочу выложить такую систему,уведомления игроков в ответ Администратора! И так как это будет работать? Все очень просто,когда Игрок напишет в репорт Администраторам и Администратор ответит игроку.то у игрока будет высвечиваться уведомление об ответе Администратора,а именно в /pm /ans И так вот скрин как это будет выглядеть: [spoiler=Скриншот] Лично как по мне нормально,но я с данного кода взял себе только звук уведомления, а ТD не стал делать И так начнем уже: Ко всем new new Text:TDInfo[5]; В public OnGameModeInit() добавим TDInfo[0] = TextDrawCreate(201.058868, 311.833404, "usebox"); TextDrawLetterSize(TDInfo[0], 0.000000, -3.298150); TextDrawTextSize(TDInfo[0], -3.882356, 0.000000); TextDrawUseBox(TDInfo[0], true); TextDrawBoxColor(TDInfo[0], 7243007); TDInfo[1] = TextDrawCreate(171.411697, 287.333374, "usebox"); TextDrawLetterSize(TDInfo[1], 0.000000, 2.223529); TextDrawTextSize(TDInfo[1], 166.941101, 0.000000); TextDrawUseBox(TDInfo[1], true); TextDrawBoxColor(TDInfo[1], 102); TDInfo[2] = TextDrawCreate(174.588195, 285.249969, "ld_pool:ball"); TextDrawLetterSize(TDInfo[2], 0.000000, 0.000000); TextDrawTextSize(TDInfo[2], 19.764677, 22.749961); TextDrawAlignment(TDInfo[2], 1); TextDrawColor(TDInfo[2], -1); TextDrawSetShadow(TDInfo[2], -121); TextDrawSetOutline(TDInfo[2], 0); TextDrawBackgroundColor(TDInfo[2], 16776960); TextDrawFont(TDInfo[2], 4); TextDrawSetPreviewModel(TDInfo[2], 19131); TextDrawSetPreviewRot(TDInfo[2], 0.000000, 90.000000, 90.000000, 1.000000); TDInfo[3] = TextDrawCreate(5.647051, 291.083404, TranslateText("~Y~Увидомление ~W~Администратор ответил на ваш вопрос.")); TextDrawLetterSize(TDInfo[3], 0.165764, 1.086666); TextDrawAlignment(TDInfo[3], 1); TextDrawBackgroundColor(TDInfo[3], 51); TextDrawFont(TDInfo[3], 2); TDInfo[4] = TextDrawCreate(195.764739, 286.416717, "New Textdraw"); TextDrawLetterSize(TDInfo[4], 0.449999, 1.600000); TextDrawTextSize(TDInfo[4], -22.586164, 19.833333); TextDrawAlignment(TDInfo[4], 1); TextDrawColor(TDInfo[4], 255); TextDrawUseBox(TDInfo[4], true); TextDrawBoxColor(TDInfo[4], 16776960); TextDrawSetShadow(TDInfo[4], 0); TextDrawSetOutline(TDInfo[4], 1); TextDrawBackgroundColor(TDInfo[4], 16776960); TextDrawFont(TDInfo[4], 5); TextDrawSetProportional(TDInfo[4], 1); TextDrawSetPreviewModel(TDInfo[4], 1239); TextDrawSetPreviewRot(TDInfo[4], 0.000000, 0.000000, 0.000000, 1.000000); Далее в команду добавляем следующее: PlayerPlaySound(playerid, 5205, 0.0, 0.0, 0.0); // Воспроизводим звук. for ( new i = 0; i < 5 ; i++ ) TextDrawShowForPlayer(playerid, TDInfo[i]) ; SetTimerEx("InfoTime", 2000, false, "d", playerid); Разберем немного код PlayerPlaySound - Это ваш звук,который будет проигрывать когда игроку придет ответ от Администратора for ( new i....- Это выводит TD на экран игрока SetTimerEx - Это таймер,т.е сколько будет показываться игроку, в данный момент 2000,т.е 2 секунды Ну и в конец мода вставляем код: publics: InfoTime(playerid) { for ( new i = 0; i < 6 ; i++ ) TextDrawHideForPlayer(playerid, TDInfo[i]) ; return 1; } В команде если кто то не поймет,то у вас должно получиться так: CMD:pm(playerid,params[]) { if(GetPVarInt(playerid, "Logged") == 0) return 1; if(P::[playerid][pAdmin] < 1) return 1; else if(strlen(params[1]) >= 90) return SCM(playerid, COLOR_WARNING,"[!] Сократите количестов вводимых символов"); else if(sscanf(params,"us[90]",params[0],params[1])) return SCM(playerid, COLOR_WARNING,"[!] Введите: /pm [id] [текст]"); else if(params[0] == INVALID_PLAYER_ID) return 1; PlayerPlaySound(playerid, 5205, 0.0, 0.0, 0.0); // Воспроизводим звук. for ( new i = 0; i < 5 ; i++ ) TextDrawShowForPlayer(playerid, TDInfo[i]) ; SendMes(params[0], 0xFF6A00FF, "{FF6A00}[PM]{FFFF00} Сообщение от %s: %s",GN(playerid), params[1]); static const pm[] = "%s {FF6A00}[PM]{FFFF00} Сообщение для %s[%d]: %s"; new str_pm[sizeof(pm) + MAX_PLAYER_NAME - 2 + MAX_PLAYER_NAME - 2 + 2 - 2 + 60 - 2]; format(str_pm, sizeof(str_pm), pm, str_pm, GN(playerid), P::[params[0]][pName], params[0], params[1]); SendAdmin(COLOR_RED, str_pm); SetTimerEx("InfoTime", 2000, false, "d", playerid); return 1; } Ну вот и все! Думаю может кто то и возьмет себе на сервер данный TD... Всем спасибо за внимание! Автор Мануала: Неизвестный. Автор слива: Marvellous (Я) P.S: А да забыл,если будут ошибки по поводу TranslateText то вот вам код,его тоже можете в конец мода закинуть! stock TranslateText(string[]) { new result[30]; for (new i = 0; i < sizeof(result); i++) { switch (string[i]) { case 'а': result[i] = 'a'; case 'А': result[i] = 'A'; case 'б': result[i] = '—'; case 'Б': result[i] = 'Ђ'; case 'в': result[i] = 'ў'; case 'В': result[i] = '‹'; case 'г': result[i] = '™'; case 'Г': result[i] = '‚'; case 'д': result[i] = 'љ'; case 'Д': result[i] = 'ѓ'; case 'е': result[i] = 'e'; case 'Е': result[i] = 'E'; case 'ё': result[i] = 'e'; case 'Ё': result[i] = 'E'; case 'ж': result[i] = '›'; case 'Ж': result[i] = '„'; case 'з': result[i] = 'џ'; case 'З': result[i] = '€'; case 'и': result[i] = 'њ'; case 'И': result[i] = '…'; case 'й': result[i] = 'ќ'; case 'Й': result[i] = '…'; case 'к': result[i] = 'k'; case 'К': result[i] = 'K'; case 'л': result[i] = 'ћ'; case 'Л': result[i] = '‡'; case 'м': result[i] = 'Ї'; case 'М': result[i] = 'M'; case 'н': result[i] = '®'; case 'Н': result[i] = ' '; case 'о': result[i] = 'o'; case 'О': result[i] = 'O'; case 'п': result[i] = 'Ј'; case 'П': result[i] = 'Њ'; case 'р': result[i] = 'p'; case 'Р': result[i] = 'P'; case 'с': result[i] = 'c'; case 'С': result[i] = 'C'; case 'т': result[i] = '¦'; case 'Т': result[i] = 'Џ'; case 'у': result[i] = 'y'; case 'У': result[i] = 'Y'; case 'ф': result[i] = '~'; case 'Ф': result[i] = 'Ѓ'; case 'х': result[i] = 'x'; case 'Х': result[i] = 'X'; case 'ц': result[i] = '*'; case 'Ц': result[i] = '‰'; case 'ч': result[i] = '¤'; case 'Ч': result[i] = 'Ќ'; case 'ш': result[i] = 'Ґ'; case 'Ш': result[i] = 'Ћ'; case 'щ': result[i] = 'Ў'; case 'Щ': result[i] = 'Љ'; case 'ь': result[i] = '©'; case 'Ь': result[i] = '’'; case 'ъ': result[i] = 'ђ'; case 'Ъ': result[i] = '§'; case 'ы': result[i] = 'Ё'; case 'Ы': result[i] = '‘'; case 'э': result[i] = 'Є'; case 'Э': result[i] = '“'; case 'ю': result[i] = '«'; case 'Ю': result[i] = '”'; case 'я': result[i] = '¬'; case 'Я': result[i] = '•'; default: result[i] = string[i]; } } return result; }
  17. Reyn

    Спидометр

    Всем привет форумчане, от нечего делать сделал спидометр как на Dushevniy RP (Не реклама) Вот как он выглядит: В архиве сразу исходник + .txt файл с готовым спидометром (дабы вам его не экспортировать в TDE) Скачать
  18. Весьма удобная система GPS, с указанием дистанции до места назначения, с использованием TD. Фото данной системы. [spoiler=Cкриншот] Для работоспособности данной системы, необходимо : Ко всем переменным, добавляем new PlayerText:GPSINFO,Text:GPSTD[4]; В public OnPlayerDisconnect(playerid, reason) добавляем PlayerTextDrawDestroy(playerid,GPSINFO); В секундный таймер if(GetPVarInt(i,"GPS") == 1) { new Float:p[3]; GetPlayerPos(i,p[0],p[1],p[2]); new str[144]; format(str,sizeof(str),"~y~Distance~n~~w~%.1f m",GetDistanceBetweenPoints(p[0], p[1], p[2], GetPVarFloat(i,"GPSX"), GetPVarFloat(i,"GPSY"), GetPVarFloat(i,"GPSZ"))); PlayerTextDrawSetString(i,GPSINFO,str); } В public OnPlayerConnect(playerid) добавляем TD GPSINFO = CreatePlayerTextDraw(playerid, 153.0000, 404.3750, "~Y~Error"); // nope PlayerTextDrawLetterSize(playerid, GPSINFO, 0.1570, 0.8956); PlayerTextDrawTextSize(playerid, GPSINFO, 229.0000, 0.0000); PlayerTextDrawAlignment(playerid, GPSINFO, 1); PlayerTextDrawColor(playerid, GPSINFO, -1); PlayerTextDrawUseBox(playerid, GPSINFO, 1); PlayerTextDrawBoxColor(playerid, GPSINFO, 524025600); PlayerTextDrawSetOutline(playerid, GPSINFO, 0); PlayerTextDrawBackgroundColor(playerid, GPSINFO, 255); PlayerTextDrawFont(playerid, GPSINFO, 2); PlayerTextDrawSetProportional(playerid, GPSINFO, 1); PlayerTextDrawSetShadow(playerid, GPSINFO, 0); К всем глобальным текстдравам GPSTD[0] = TextDrawCreate(123.5000, 395.9624, "ld_beat:chit"); // nope TextDrawLetterSize(GPSTD[0], 0.0000, 0.0000); TextDrawTextSize(GPSTD[0], 34.0000, 35.0000); TextDrawAlignment(GPSTD[0], 1); TextDrawColor(GPSTD[0], 186596351); TextDrawSetOutline(GPSTD[0], 0); TextDrawBackgroundColor(GPSTD[0], 255); TextDrawFont(GPSTD[0], 4); TextDrawSetProportional(GPSTD[0], 0); TextDrawSetShadow(GPSTD[0], 0); GPSTD[1] = TextDrawCreate(202.5000, 395.9624, "ld_beat:chit"); // nope TextDrawLetterSize(GPSTD[1], 0.0000, 0.0000); TextDrawTextSize(GPSTD[1], 34.0000, 35.0000); TextDrawAlignment(GPSTD[1], 1); TextDrawColor(GPSTD[1], 186596351); TextDrawSetOutline(GPSTD[1], 0); TextDrawBackgroundColor(GPSTD[1], 255); TextDrawFont(GPSTD[1], 4); TextDrawSetProportional(GPSTD[1], 0); TextDrawSetShadow(GPSTD[1], 0); GPSTD[2] = TextDrawCreate(140.0000, 401.3125, "LD_SPAC:white"); // nope TextDrawLetterSize(GPSTD[2], 0.0000, 0.0000); TextDrawTextSize(GPSTD[2], 81.0000, 23.7599); TextDrawAlignment(GPSTD[2], 1); TextDrawColor(GPSTD[2], 186596351); TextDrawSetOutline(GPSTD[2], 0); TextDrawBackgroundColor(GPSTD[2], 255); TextDrawFont(GPSTD[2], 4); TextDrawSetProportional(GPSTD[2], 0); TextDrawSetShadow(GPSTD[2], 0); GPSTD[3] = TextDrawCreate(130.0000, 402.5249, "hud:radar_waypoint"); // nope TextDrawLetterSize(GPSTD[3], 0.0000, 0.0000); TextDrawTextSize(GPSTD[3], 21.0000, 21.0000); TextDrawAlignment(GPSTD[3], 1); TextDrawColor(GPSTD[3], -1); TextDrawSetOutline(GPSTD[3], 0); TextDrawBackgroundColor(GPSTD[3], 255); TextDrawFont(GPSTD[3], 4); TextDrawSetProportional(GPSTD[3], 0); TextDrawSetShadow(GPSTD[3], 0); В конец мода stock Float:GetDistanceBetweenPoints(Float:X, Float:Y, Float:Z, Float:PointX, Float:PointY, Float:PointZ) { new Float:Distance;Distance = floatabs(floatsub(X, PointX)) + floatabs(floatsub(Y, PointY)) + floatabs(floatsub(Z, PointZ)); return Distance; } stock GPS(playerid, Float:x, Float:y, Float:z,NameSTR[]) { new str[144]; if(GetPVarInt(playerid,"GPS") == 1) RemovePlayerMapIcon(playerid, 99); SetPlayerMapIcon(playerid, 99, x, y, z, 19, 0, MAPICON_GLOBAL); new Float:p[3]; GetPlayerPos(playerid,p[0],p[1],p[2]); format(str,sizeof(str),"{FFFFFF}Место назначение {FFFFFF}%s{FFFFFF}. Расстояние до место назначение {FFFFFF}%.1f м.(красный флажок)",NameSTR,GetDistanceBetweenPoints(p[0], p[1], p[2], x, y, z)); SendClientMessage(playerid,-1,str); PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0); SetPVarInt(playerid,"GPS",1); SetPVarInt(playerid,"GPS_AREA",CreateDynamicSphere(x, y, z, 10.0, 0, 0, -1)); SetPVarFloat(playerid,"GPSX",x); SetPVarFloat(playerid,"GPSY",y); SetPVarFloat(playerid,"GPSZ",z); format(str,sizeof(str),"~y~Distance~n~~w~%.1f m",GetDistanceBetweenPoints(p[0], p[1], p[2], x, y, z)); PlayerTextDrawSetString(playerid,GPSINFO,str); for(new i; i < sizeof(GPSTD); i++) TextDrawShowForPlayer(playerid,GPSTD[i]); PlayerTextDrawShow(playerid,GPSINFO); return true; } stock UNGPS(playerid) { if(GetPVarInt(playerid,"GPS") == 1) { DestroyDynamicArea(GetPVarInt(playerid,"GPS_AREA")); DeletePVar(playerid,"GPS_AREA"); RemovePlayerMapIcon(playerid, 99); SetPVarInt(playerid,"GPS",0); DeletePVar(playerid,"GPSX"); DeletePVar(playerid,"GPSY"); DeletePVar(playerid,"GPSZ"); for(new i; i < sizeof(GPSTD); i++) TextDrawHideForPlayer(playerid,GPSTD[i]); PlayerTextDrawHide(playerid,GPSINFO); } return true; } Автор данной системы и TD : -WorcOut-
  19. Vladimir_Kulkov

    Команда /makeadmin на dc_cmd

    Всем привет не видел на данном форуме такую команду как /makeadmin и решил её выложить. Итак начнем! Сначала сделаем #define #define SCM SendClientMessage К вашим командам. CMD:makeadmin(playerid, params[]) { if(Player[playerid][pAdmin] < 8) return SCM(playerid, 0xFF0000AA, "Вы не уполномочены использовать данную команду"); if(sscanf(params, "ii", params[0], params[1])) return SCM(playerid, 0xFF0000AA, "Введите: /makeadmin [0-7]"); if(!IsPlayerConnected(params[0])) return SCM(playerid, 0xFF0000AA, "Данный игрок не в сети!"); if(params[1] < 0 || params[1] > 7) return SCM(playerid, 0xFF0000AA, "Уровень админа [0-7]"); Player[params[0]][pAdmin] = params[1]; static const fmt_str[] = "Админ %s изменил ваш уровень админа на: %d"; new string[sizeof(fmt_str)-2+MAX_PLAYER_NAME-2+1]; format(string, sizeof(string), fmt_str, Player[playerid][pName], params[1]); SCM(params[0], 0xFFFF00FF, string); return true; } А теперь давайте разберем код. new string[128]; // Отвечает за размер строки (Не менять больше! т.к нагружать сервер будет) if(Player[playerid][pAdmin] < 8) // Отвечает за проверку уровня админа (Player - Это переменная где хранятся данные об игроке например у меня: Player) pAdmin - Это массив отвечающий за админа меняйте на свой, (( < 8 - Если уровень админа меньше 8, то возникает ошибка )) if(sscanf(params, "ii", params[0], params[1])) // params, "ii" - Отвечает за текст и айди игрока, params[0] - ид игрока, params[1] - уровень админа if(!IsPlayerConnected(params[0])) // Проверка на в сети ли игрок, params[0] - ид игрока который был введен if(params[1] < 0 || params[1] > 7) // params[1] < 0 если введеный уровень меньше 0, params[1] > 7 если введеный уровень больше 7, то возникнет ошибка, (params[1] - отвечает за текст) Player[params[0]][pAdmin] = params[1]; // Присвоение игроку уровень админа, Player[params[0] - ИД игрока, = params[1] - Уровень который хотят дать format(string, sizeof(string), "Админ %s изменил ваш уровень админа на: %d", Player[playerid][pName], params[1]); // Player[playerid][pName] - Ваш массив с именем (Ставите свой), params[1] - Сколько игроку поставили уровень админа SendClientMessage(params[0], 0xFFFFFFAA, string); return true; // Действие повторяется Автор : неизвестно
  20. Здраствуйте уважаемые пользователи cr-mp.ru К вашему вниманию были скрипты Падающего снега. Но выглядело не очень, и не у всех они работали. Я сделал вам мануал как добавить сам снег в мод. Данный снег падает сам, отключить его можно только если удалить код из Pawno. Чтобы добавить снег в мод, нужно В public OnGameModeInit добавить: for(new x=-3000; x < 3000; x+=100) for(new y=-3000; y < 3000; y+=100) CreateDynamicObject(18864, x, y, 0.0, 0.0, 0.0, 0.0); Спасибо за внимание.
  21. Бешенный Кот

    Антикапс | AntiCAPS

    Всем привет, недавно увидел тему про капс, и решил выложить функцию анти-капса: Вот такая простенькая функция :) Автор: неизвестно В OnPlayerText суем это: new caps; while (text[++caps]) { if('A'<=text[caps]<='Z') text[caps] |= 0x20; if('А'<=text[caps]<='Я') text[caps] |= 0x20; }
  22. Здравствуйте уважаемые пользователи,хочу вам представить рандомную погоду.Нашел в просторах интернета. И так начнем. К forward: forward ChangeWeather(); Затем в public OnGameModeInit() SetTimer("ChangeWeather",1000*60*30, true);//1 раз в 30 минут, будет меняться погода. ChangeWeather(); Ну и создаем паблик, в свободном месте. Можно в самом конце мода: public ChangeWeather() { new weather ; weather = random(20) ; SetWeather(weather); switch(weather) { case 1:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]:{FFC800}изменилась на солнечную!"); case 2:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {646CFF}изменилась на штормовую!"); case 3:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {FFC800}изменилась на солнечную!"); case 4:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {D2EBFF}изменилась на туманну."); case 5:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {D2EBFF}изменилась на дождевую!"); case 6:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {D2EBFF}изменилась на дождевую!"); case 7:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {D2EBFF}изменилась на облачную!"); case 8:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {D2EBFF}изменилась на пасмурную!"); case 9:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {D2EBFF}изменилась на туманную!"); case 10:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {ACFF46}изменилась на солнечную!"); case 11:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {ACFF46}изменилась на солнечную!"); case 12:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {D2EBFF}изменилась на облачную!"); case 13:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {FFDE37}изменилась на солнечную!"); case 14:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {FFDE37}изменилась на солнечную!"); case 15:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {D2EBFF}изменилась на облачную!"); case 16:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {D2EBFF}изменилась на дождевую!"); case 17:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {FF5441}изменилась на жаркую!"); case 18:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {FF5441}изменилась на жаркую!"); case 19:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {0A1EFF}изменилась на штормовую!"); case 20:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {FAFFF5}погода сменилась на облачную, не забудьте зонтик."); } return 1; } Автор:Неизвестен
  23. Здравствуйте уважаемые пользователи портала. Сегодня я бы хотел предоставить копию версии спутника, которая похожая с проекта ReinForce RP. 1. Ко всем переменным: new Text:gSatellite[9], // Загрузка спутника Text:gSatelliteSett[20], // Управление PlayerText:pSatellite[MAX_PLAYERS][5], // Данные загрузки спутника PlayerText:pSatelliteSett[MAX_PLAYERS][5]; // Управление камерой в спутнике new Float:pCoords[MAX_PLAYERS][3]; // Координаты игрока new cSatelliteCount[MAX_PLAYERS char], // Состояние загрузки спутника cSatelliteStatusLoad[MAX_PLAYERS], // Таймер загрузки спутника cSatelliteStatus[MAX_PLAYERS char]; // Статус состояния подключения к спутнику 2. В коллбэк OnPlayerConnect: KillTimer(cSatelliteStatusLoad[playerid]); cSatelliteStatus{playerid} = 0; cSatelliteCount{playerid} = 0; pCoords[playerid][0] = 0.0; pCoords[playerid][1] = 0.0; pCoords[playerid][2] = 0.0; 3. В коллбэк OnGameModeInit: // Загрузка спутника gSatellite[0] = TextDrawCreate(-3.5000, -15.5555, "LD_SPAC:white"); // пусто TextDrawTextSize(gSatellite[0], 656.0000, 560.0000); TextDrawAlignment(gSatellite[0], 1); TextDrawColor(gSatellite[0], 303174399); TextDrawBackgroundColor(gSatellite[0], 255); TextDrawFont(gSatellite[0], 4); TextDrawSetProportional(gSatellite[0], 0); TextDrawSetShadow(gSatellite[0], 0); gSatellite[1] = TextDrawCreate(316.0000, 170.7110, "€A‚PY€KA"); // Загрузка TextDrawLetterSize(gSatellite[1], 0.6480, 2.9439); TextDrawAlignment(gSatellite[1], 2); TextDrawColor(gSatellite[1], -1); TextDrawBackgroundColor(gSatellite[1], 255); TextDrawFont(gSatellite[1], 2); TextDrawSetProportional(gSatellite[1], 1); TextDrawSetShadow(gSatellite[1], 0); gSatellite[2] = TextDrawCreate(230.6000, 221.1452, "LOG:"); // Информация о загрузке TextDrawLetterSize(gSatellite[2], 0.3834, 2.0417); TextDrawAlignment(gSatellite[2], 2); TextDrawColor(gSatellite[2], -1); TextDrawBackgroundColor(gSatellite[2], 255); TextDrawFont(gSatellite[2], 2); TextDrawSetProportional(gSatellite[2], 1); TextDrawSetShadow(gSatellite[2], 0); gSatellite[3] = TextDrawCreate(315.1000, 303.0075, "ЊO„A‡Y†CЏA,_ѓO„ѓ…ЏEC’_€A‚PY€K…"); // Пожалуйста, дождитесь полной загрузки TextDrawLetterSize(gSatellite[3], 0.2089, 1.1022); TextDrawAlignment(gSatellite[3], 2); TextDrawColor(gSatellite[3], -1); TextDrawBackgroundColor(gSatellite[3], 255); TextDrawFont(gSatellite[3], 2); TextDrawSetProportional(gSatellite[3], 1); TextDrawSetShadow(gSatellite[3], 0); gSatellite[5] = TextDrawCreate(250.0000, 201.0444, "LD_SPAC:white"); // пусто TextDrawTextSize(gSatellite[5], 3.0000, 35.0000); TextDrawAlignment(gSatellite[5], 1); TextDrawColor(gSatellite[5], 303174399); TextDrawBackgroundColor(gSatellite[5], 255); TextDrawFont(gSatellite[5], 4); TextDrawSetProportional(gSatellite[5], 0); TextDrawSetShadow(gSatellite[5], 0); gSatellite[6] = TextDrawCreate(293.0000, 199.7999, "LD_SPAC:white"); // пусто TextDrawTextSize(gSatellite[6], 3.0000, 35.0000); TextDrawAlignment(gSatellite[6], 1); TextDrawColor(gSatellite[6], 303174399); TextDrawBackgroundColor(gSatellite[6], 255); TextDrawFont(gSatellite[6], 4); TextDrawSetProportional(gSatellite[6], 0); TextDrawSetShadow(gSatellite[6], 0); gSatellite[7] = TextDrawCreate(333.0000, 202.9110, "LD_SPAC:white"); // пусто TextDrawTextSize(gSatellite[7], 3.0000, 35.0000); TextDrawAlignment(gSatellite[7], 1); TextDrawColor(gSatellite[7], 303174399); TextDrawBackgroundColor(gSatellite[7], 255); TextDrawFont(gSatellite[7], 4); TextDrawSetProportional(gSatellite[7], 0); TextDrawSetShadow(gSatellite[7], 0); gSatellite[8] = TextDrawCreate(373.5000, 202.9110, "LD_SPAC:white"); // пусто TextDrawTextSize(gSatellite[8], 3.0000, 35.0000); TextDrawAlignment(gSatellite[8], 1); TextDrawColor(gSatellite[8], 303174399); TextDrawBackgroundColor(gSatellite[8], 255); TextDrawFont(gSatellite[8], 4); TextDrawSetProportional(gSatellite[8], 0); TextDrawSetShadow(gSatellite[8], 0); gSatellite[4] = TextDrawCreate(213.0000, 204.1336, "LD_SPAC:white"); // пусто TextDrawTextSize(gSatellite[4], 202.0000, 10.0000); TextDrawAlignment(gSatellite[4], 1); TextDrawColor(gSatellite[4], 404232447); TextDrawBackgroundColor(gSatellite[4], 255); TextDrawFont(gSatellite[4], 4); TextDrawSetProportional(gSatellite[4], 0); TextDrawSetShadow(gSatellite[4], 0); // Управление gSatelliteSett[0] = TextDrawCreate(475.8348, 154.4165, "LD_SPAC:white"); // пусто TextDrawTextSize(gSatelliteSett[0], 161.0000, 139.0000); TextDrawAlignment(gSatelliteSett[0], 1); TextDrawColor(gSatelliteSett[0], 606348543); TextDrawBackgroundColor(gSatelliteSett[0], 255); TextDrawFont(gSatelliteSett[0], 4); TextDrawSetProportional(gSatelliteSett[0], 0); TextDrawSetShadow(gSatelliteSett[0], 0); gSatelliteSett[1] = TextDrawCreate(478.1773, 163.1665, "LD_SPAC:white"); // пусто TextDrawTextSize(gSatelliteSett[1], 156.6701, 127.6499); TextDrawAlignment(gSatelliteSett[1], 1); TextDrawColor(gSatelliteSett[1], 303174399); TextDrawBackgroundColor(gSatelliteSett[1], 255); TextDrawFont(gSatelliteSett[1], 4); TextDrawSetProportional(gSatelliteSett[1], 0); TextDrawSetShadow(gSatelliteSett[1], 0); gSatelliteSett[2] = TextDrawCreate(478.1773, 168.4165, "LD_SPAC:white"); // пусто TextDrawTextSize(gSatelliteSett[2], 65.0000, 14.0000); TextDrawAlignment(gSatelliteSett[2], 1); TextDrawColor(gSatelliteSett[2], 606348543); TextDrawBackgroundColor(gSatelliteSett[2], 255); TextDrawFont(gSatelliteSett[2], 4); TextDrawSetProportional(gSatelliteSett[2], 0); TextDrawSetShadow(gSatelliteSett[2], 0); gSatelliteSett[3] = TextDrawCreate(569.7653, 168.4165, "LD_SPAC:white"); // пусто TextDrawTextSize(gSatelliteSett[3], 65.0000, 14.0000); TextDrawAlignment(gSatelliteSett[3], 1); TextDrawColor(gSatelliteSett[3], 606348543); TextDrawBackgroundColor(gSatelliteSett[3], 255); TextDrawFont(gSatelliteSett[3], 4); TextDrawSetProportional(gSatelliteSett[3], 0); TextDrawSetShadow(gSatelliteSett[3], 0); gSatelliteSett[4] = TextDrawCreate(478.1773, 169.9665, "LD_SPAC:white"); // пусто TextDrawTextSize(gSatelliteSett[4], 64.0000, 11.0000); TextDrawAlignment(gSatelliteSett[4], 1); TextDrawColor(gSatelliteSett[4], 303174399); TextDrawBackgroundColor(gSatelliteSett[4], 255); TextDrawFont(gSatelliteSett[4], 4); TextDrawSetProportional(gSatelliteSett[4], 0); TextDrawSetShadow(gSatelliteSett[4], 0); gSatelliteSett[5] = TextDrawCreate(570.6759, 170.1331, "LD_SPAC:white"); // пусто TextDrawTextSize(gSatelliteSett[5], 64.0000, 11.0000); TextDrawAlignment(gSatelliteSett[5], 1); TextDrawColor(gSatelliteSett[5], 303174399); TextDrawBackgroundColor(gSatelliteSett[5], 255); TextDrawFont(gSatelliteSett[5], 4); TextDrawSetProportional(gSatelliteSett[5], 0); TextDrawSetShadow(gSatelliteSett[5], 0); gSatelliteSett[6] = TextDrawCreate(556.0200, 154.7500, "YЊPA‹‡EH…E"); // Управление TextDrawLetterSize(gSatelliteSett[6], 0.1605, 0.8357); TextDrawAlignment(gSatelliteSett[6], 2); TextDrawColor(gSatelliteSett[6], -1); TextDrawBackgroundColor(gSatelliteSett[6], 255); TextDrawFont(gSatelliteSett[6], 2); TextDrawSetProportional(gSatelliteSett[6], 1); TextDrawSetShadow(gSatelliteSett[6], 0); gSatelliteSett[7] = TextDrawCreate(494.5466, 171.1667, "ЊEPEMEЉEH…E"); // Перемещение TextDrawLetterSize(gSatelliteSett[7], 0.1605, 0.8357); TextDrawAlignment(gSatelliteSett[7], 1); TextDrawColor(gSatelliteSett[7], -1); TextDrawBackgroundColor(gSatelliteSett[7], 255); TextDrawFont(gSatelliteSett[7], 2); TextDrawSetProportional(gSatelliteSett[7], 1); TextDrawSetShadow(gSatelliteSett[7], 0); gSatelliteSett[8] = TextDrawCreate(573.4326, 171.1667, "ѓE†CЏ‹…•"); // Действие TextDrawLetterSize(gSatelliteSett[8], 0.1605, 0.8357); TextDrawAlignment(gSatelliteSett[8], 1); TextDrawColor(gSatelliteSett[8], -1); TextDrawBackgroundColor(gSatelliteSett[8], 255); TextDrawFont(gSatelliteSett[8], 2); TextDrawSetProportional(gSatelliteSett[8], 1); TextDrawSetShadow(gSatelliteSett[8], 0); gSatelliteSett[9] = TextDrawCreate(478.1087, 247.7998, "LD_SPAC:white"); // пусто TextDrawTextSize(gSatelliteSett[9], 104.0000, 26.0000); TextDrawAlignment(gSatelliteSett[9], 1); TextDrawColor(gSatelliteSett[9], 606348543); TextDrawBackgroundColor(gSatelliteSett[9], 255); TextDrawFont(gSatelliteSett[9], 4); TextDrawSetProportional(gSatelliteSett[9], 0); TextDrawSetShadow(gSatelliteSett[9], 0); gSatelliteSett[10] = TextDrawCreate(478.1773, 249.9333, "LD_SPAC:white"); // пусто TextDrawTextSize(gSatelliteSett[10], 102.5399, 22.0000); TextDrawAlignment(gSatelliteSett[10], 1); TextDrawColor(gSatelliteSett[10], 303174399); TextDrawBackgroundColor(gSatelliteSett[10], 255); TextDrawFont(gSatelliteSett[10], 4); TextDrawSetProportional(gSatelliteSett[10], 0); TextDrawSetShadow(gSatelliteSett[10], 0); gSatelliteSett[11] = TextDrawCreate(537.9790, 256.5333, "CЏAЏYC:_‹‘ЊO‡HEH…E..."); // Выполнение TextDrawLetterSize(gSatelliteSett[11], 0.1605, 0.8357); TextDrawAlignment(gSatelliteSett[11], 2); TextDrawColor(gSatelliteSett[11], -1); TextDrawBackgroundColor(gSatelliteSett[11], 255); TextDrawFont(gSatelliteSett[11], 2); TextDrawSetProportional(gSatelliteSett[11], 1); TextDrawSetShadow(gSatelliteSett[11], 0); gSatelliteSett[12] = TextDrawCreate(478.6087, 248.5997, "LD_BEAT:chit"); // пусто TextDrawTextSize(gSatelliteSett[12], 19.0000, 25.0000); TextDrawAlignment(gSatelliteSett[12], 1); TextDrawColor(gSatelliteSett[12], -1523963137); TextDrawBackgroundColor(gSatelliteSett[12], 255); TextDrawFont(gSatelliteSett[12], 4); TextDrawSetProportional(gSatelliteSett[12], 0); TextDrawSetShadow(gSatelliteSett[12], 0); gSatelliteSett[13] = TextDrawCreate(480.5090, 251.0000, "LD_BEAT:chit"); // пусто TextDrawTextSize(gSatelliteSett[13], 15.0000, 20.0000); TextDrawAlignment(gSatelliteSett[13], 1); TextDrawColor(gSatelliteSett[13], -2147483393); TextDrawBackgroundColor(gSatelliteSett[13], 255); TextDrawFont(gSatelliteSett[13], 4); TextDrawSetProportional(gSatelliteSett[13], 0); TextDrawSetShadow(gSatelliteSett[13], 0); gSatelliteSett[14] = TextDrawCreate(569.4077, 185.8332, "LD_SPAC:white"); // пусто TextDrawTextSize(gSatelliteSett[14], 63.0000, 11.0000); TextDrawAlignment(gSatelliteSett[14], 1); TextDrawColor(gSatelliteSett[14], 606348543); TextDrawBackgroundColor(gSatelliteSett[14], 255); TextDrawFont(gSatelliteSett[14], 4); TextDrawSetProportional(gSatelliteSett[14], 0); TextDrawSetShadow(gSatelliteSett[14], 0); gSatelliteSett[15] = TextDrawCreate(569.4077, 199.4340, "LD_SPAC:white"); // пусто TextDrawTextSize(gSatelliteSett[15], 63.0000, 11.0000); TextDrawAlignment(gSatelliteSett[15], 1); TextDrawColor(gSatelliteSett[15], 606348543); TextDrawBackgroundColor(gSatelliteSett[15], 255); TextDrawFont(gSatelliteSett[15], 4); TextDrawSetProportional(gSatelliteSett[15], 0); TextDrawSetShadow(gSatelliteSett[15], 0); gSatelliteSett[16] = TextDrawCreate(630.4928, 199.4340, "LD_SPAC:white"); // пусто TextDrawTextSize(gSatelliteSett[16], 2.0000, 11.0000); TextDrawAlignment(gSatelliteSett[16], 1); TextDrawColor(gSatelliteSett[16], 370546431); TextDrawBackgroundColor(gSatelliteSett[16], 255); TextDrawFont(gSatelliteSett[16], 4); TextDrawSetProportional(gSatelliteSett[16], 0); TextDrawSetShadow(gSatelliteSett[16], 0); gSatelliteSett[17] = TextDrawCreate(630.4928, 185.8332, "LD_SPAC:white"); // пусто TextDrawTextSize(gSatelliteSett[17], 2.0000, 11.0000); TextDrawAlignment(gSatelliteSett[17], 1); TextDrawColor(gSatelliteSett[17], 370546431); TextDrawBackgroundColor(gSatelliteSett[17], 255); TextDrawFont(gSatelliteSett[17], 4); TextDrawSetProportional(gSatelliteSett[17], 0); TextDrawSetShadow(gSatelliteSett[17], 0); gSatelliteSett[18] = TextDrawCreate(575.6831, 187.3000, "OЏP•ѓ_S.W.A.T"); // Перемещение TextDrawLetterSize(gSatelliteSett[18], 0.1605, 0.8357); TextDrawTextSize(gSatelliteSett[18], 622.0000, 6.7500); TextDrawAlignment(gSatelliteSett[18], 1); TextDrawColor(gSatelliteSett[18], -1); TextDrawUseBox(gSatelliteSett[18], 1); TextDrawBoxColor(gSatelliteSett[18], -256); TextDrawBackgroundColor(gSatelliteSett[18], 255); TextDrawFont(gSatelliteSett[18], 2); TextDrawSetProportional(gSatelliteSett[18], 1); TextDrawSetShadow(gSatelliteSett[18], 0); TextDrawSetSelectable(gSatelliteSett[18], true); gSatelliteSett[19] = TextDrawCreate(575.6831, 200.2007, "OЏK‡”Ќ…Џ’C•"); // Перемещение TextDrawLetterSize(gSatelliteSett[19], 0.1605, 0.8357); TextDrawTextSize(gSatelliteSett[19], 622.0000, 6.7500); TextDrawAlignment(gSatelliteSett[19], 1); TextDrawColor(gSatelliteSett[19], -1); TextDrawUseBox(gSatelliteSett[19], 1); TextDrawBoxColor(gSatelliteSett[19], -256); TextDrawBackgroundColor(gSatelliteSett[19], 255); TextDrawFont(gSatelliteSett[19], 2); TextDrawSetProportional(gSatelliteSett[19], 1); TextDrawSetShadow(gSatelliteSett[19], 0); TextDrawSetSelectable(gSatelliteSett[19], true); 4. В коллбэк OnPlayerClickTextDraw: if(clickedid == gSatelliteSett[19]) { CancelSelectTextDraw(playerid); cSatelliteStatus{playerid} = 0; SetCameraBehindPlayer(playerid); TogglePlayerControllable(playerid, 1); for(new gSLSett; gSLSett < 20; gSLSett++) TextDrawHideForPlayer(playerid, gSatelliteSett[gSLSett]); for(new pSLSETTS; pSLSETTS < 5; pSLSETTS++) PlayerTextDrawHide(playerid, pSatelliteSett[playerid][pSLSETTS]); SetPlayerPos(playerid, pCoords[playerid][0], pCoords[playerid][1], pCoords[playerid][2]); } if(clickedid == gSatelliteSett[18]) { // Ваш код для вызова S.W.A.T } if(_:clickedid == INVALID_TEXT_DRAW) { if(cSatelliteStatus{playerid} == 2) return SelectTextDraw(playerid, 0xFFFFFFFF); } 5. В коллбэк OnPlayerClickPlayerTextDraw: new Float: camera_satellite_x, Float: camera_satellite_y, Float: camera_satellite_z; if(playertextid == pSatelliteSett[playerid][1]) // Назад { GetPlayerCameraPos(playerid, camera_satellite_x, camera_satellite_y, camera_satellite_z); SetPlayerCameraPos(playerid, camera_satellite_x - 25, camera_satellite_y, camera_satellite_z); SetPlayerCameraLookAt(playerid, pCoords[playerid][0], pCoords[playerid][1], pCoords[playerid][2], CAMERA_MOVE); static const form_satellite[] = "KOOPѓ…HAЏ‘:_x:_%.4f_Y:_%.4f"; new string[sizeof(form_satellite)+(-2+15)+(-2+15)]; format(string, sizeof(string), form_satellite, pCoords[playerid][0], pCoords[playerid][1]); PlayerTextDrawSetString(playerid, pSatelliteSett[playerid][0], string); } if(playertextid == pSatelliteSett[playerid][2]) // Вперед { GetPlayerCameraPos(playerid, camera_satellite_x, camera_satellite_y, camera_satellite_z); SetPlayerCameraPos(playerid, camera_satellite_x + 25, camera_satellite_y, camera_satellite_z); SetPlayerCameraLookAt(playerid, pCoords[playerid][0], pCoords[playerid][1], pCoords[playerid][2], CAMERA_MOVE); static const form_satellite[] = "KOOPѓ…HAЏ‘:_x:_%.4f_Y:_%.4f"; new string[sizeof(form_satellite)+(-2+15)+(-2+15)]; format(string, sizeof(string), form_satellite, pCoords[playerid][0], pCoords[playerid][1]); PlayerTextDrawSetString(playerid, pSatelliteSett[playerid][0], string); } if(playertextid == pSatelliteSett[playerid][3]) // В право { GetPlayerCameraPos(playerid, camera_satellite_x, camera_satellite_y, camera_satellite_z); SetPlayerCameraPos(playerid, camera_satellite_x, camera_satellite_y + 25, camera_satellite_z); SetPlayerCameraLookAt(playerid, pCoords[playerid][0], pCoords[playerid][1], pCoords[playerid][2], CAMERA_MOVE); static const form_satellite[] = "KOOPѓ…HAЏ‘:_x:_%.4f_Y:_%.4f"; new string[sizeof(form_satellite)+(-2+15)+(-2+15)]; format(string, sizeof(string), form_satellite, pCoords[playerid][0], pCoords[playerid][1]); PlayerTextDrawSetString(playerid, pSatelliteSett[playerid][0], string); } if(playertextid == pSatelliteSett[playerid][4]) // В лево { GetPlayerCameraPos(playerid, camera_satellite_x, camera_satellite_y, camera_satellite_z); SetPlayerCameraPos(playerid, camera_satellite_x, camera_satellite_y - 25, camera_satellite_z); SetPlayerCameraLookAt(playerid, pCoords[playerid][0], pCoords[playerid][1], pCoords[playerid][2], CAMERA_MOVE); static const form_satellite[] = "KOOPѓ…HAЏ‘:_x:_%.4f_Y:_%.4f"; new string[sizeof(form_satellite)+(-2+15)+(-2+15)]; format(string, sizeof(string), form_satellite, pCoords[playerid][0], pCoords[playerid][1]); PlayerTextDrawSetString(playerid, pSatelliteSett[playerid][0], string); } 6. Ко всем коллбэкам: @__LoadSatellite(playerid); @__LoadSatellite(playerid) { if(++ cSatelliteCount{playerid} <= 100) { PlayerTextDrawTextSize(playerid, pSatellite[playerid][4], cSatelliteCount{playerid}*2.0000, 10.0000); PlayerTextDrawShow(playerid, pSatellite[playerid][4]); switch(cSatelliteCount{playerid}) { case 0..19: PlayerTextDrawSetString(playerid, pSatellite[playerid][0], "~g~READY~w~ €AЊYCK_C…CЏEM‘..."); case 20..40: PlayerTextDrawSetString(playerid, pSatellite[playerid][1], "~g~READY~w~ ЊOѓK‡”ЌEH…E_K_CЊYЏH…KAM"); case 60..80: PlayerTextDrawSetString(playerid, pSatellite[playerid][2], "~g~READY~w~ ЊPO‹EPKA_COEѓ…HEH…•"); case 81..100: PlayerTextDrawSetString(playerid, pSatellite[playerid][3], "~g~READY~w~ €A‚PY€KA_…HЏEPЃE†CA"); } } else { KillTimer(cSatelliteStatusLoad[playerid]); cSatelliteStatus{playerid} = 0; cSatelliteCount{playerid} = 0; for(new gSL; gSL < 9; gSL++) TextDrawHideForPlayer(playerid, gSatellite[gSL]); for(new pSL; pSL < 5; pSL++) PlayerTextDrawDestroy(playerid, pSatellite[playerid][pSL]); static const form_satellite[] = "KOOPѓ…HAЏ‘:_x:_%.4f_Y:_%.4f"; new string[sizeof(form_satellite)+(-2+15)+(-2+15)]; format(string, sizeof(string), form_satellite, pCoords[playerid][0], pCoords[playerid][1]); PlayerTextDrawSetString(playerid, pSatelliteSett[playerid][0], string); pSatelliteSett[playerid][0] = CreatePlayerTextDraw(playerid, 481.1567, 278.6665, "_"); // Координаты PlayerTextDrawLetterSize(playerid, pSatelliteSett[playerid][0], 0.1370, 0.9115); PlayerTextDrawAlignment(playerid, pSatelliteSett[playerid][0], 1); PlayerTextDrawColor(playerid, pSatelliteSett[playerid][0], -2139062017); PlayerTextDrawBackgroundColor(playerid, pSatelliteSett[playerid][0], 255); PlayerTextDrawFont(playerid, pSatelliteSett[playerid][0], 2); PlayerTextDrawSetProportional(playerid, pSatelliteSett[playerid][0], 1); PlayerTextDrawSetShadow(playerid, pSatelliteSett[playerid][0], 0); pSatelliteSett[playerid][1] = CreatePlayerTextDraw(playerid, 500.4662, 222.2349, "LD_BEAT:down"); // Кнопка назад PlayerTextDrawTextSize(playerid, pSatelliteSett[playerid][1], 16.0000, 18.0000); PlayerTextDrawAlignment(playerid, pSatelliteSett[playerid][1], 1); PlayerTextDrawColor(playerid, pSatelliteSett[playerid][1], -1); PlayerTextDrawBackgroundColor(playerid, pSatelliteSett[playerid][1], 255); PlayerTextDrawFont(playerid, pSatelliteSett[playerid][1], 4); PlayerTextDrawSetProportional(playerid, pSatelliteSett[playerid][1], 0); PlayerTextDrawSetShadow(playerid, pSatelliteSett[playerid][1], 0); PlayerTextDrawSetSelectable(playerid, pSatelliteSett[playerid][1], true); pSatelliteSett[playerid][2] = CreatePlayerTextDraw(playerid, 500.1976, 188.2146, "LD_BEAT:up"); // Кнопка вперед PlayerTextDrawTextSize(playerid, pSatelliteSett[playerid][2], 16.0000, 18.0000); PlayerTextDrawAlignment(playerid, pSatelliteSett[playerid][2], 1); PlayerTextDrawColor(playerid, pSatelliteSett[playerid][2], -1); PlayerTextDrawBackgroundColor(playerid, pSatelliteSett[playerid][2], 255); PlayerTextDrawFont(playerid, pSatelliteSett[playerid][2], 4); PlayerTextDrawSetProportional(playerid, pSatelliteSett[playerid][2], 0); PlayerTextDrawSetShadow(playerid, pSatelliteSett[playerid][2], 0); PlayerTextDrawSetSelectable(playerid, pSatelliteSett[playerid][2], true); pSatelliteSett[playerid][3] = CreatePlayerTextDraw(playerid, 514.9976, 204.3156, "LD_BEAT:right"); // Кнопка в право PlayerTextDrawTextSize(playerid, pSatelliteSett[playerid][3], 16.0000, 18.0000); PlayerTextDrawAlignment(playerid, pSatelliteSett[playerid][3], 1); PlayerTextDrawColor(playerid, pSatelliteSett[playerid][3], -1); PlayerTextDrawBackgroundColor(playerid, pSatelliteSett[playerid][3], 255); PlayerTextDrawFont(playerid, pSatelliteSett[playerid][3], 4); PlayerTextDrawSetProportional(playerid, pSatelliteSett[playerid][3], 0); PlayerTextDrawSetShadow(playerid, pSatelliteSett[playerid][3], 0); PlayerTextDrawSetSelectable(playerid, pSatelliteSett[playerid][3], true); pSatelliteSett[playerid][4] = CreatePlayerTextDraw(playerid, 484.7967, 204.3156, "LD_BEAT:left"); // Кнопка в лево PlayerTextDrawTextSize(playerid, pSatelliteSett[playerid][4], 16.0000, 18.0000); PlayerTextDrawAlignment(playerid, pSatelliteSett[playerid][4], 1); PlayerTextDrawColor(playerid, pSatelliteSett[playerid][4], -1); PlayerTextDrawBackgroundColor(playerid, pSatelliteSett[playerid][4], 255); PlayerTextDrawFont(playerid, pSatelliteSett[playerid][4], 4); PlayerTextDrawSetProportional(playerid, pSatelliteSett[playerid][4], 0); PlayerTextDrawSetShadow(playerid, pSatelliteSett[playerid][4], 0); PlayerTextDrawSetSelectable(playerid, pSatelliteSett[playerid][4], true); for(new gSLSett; gSLSett < 20; gSLSett++) TextDrawShowForPlayer(playerid, gSatelliteSett[gSLSett]); for(new pSLSETTS; pSLSETTS < 5; pSLSETTS++) PlayerTextDrawShow(playerid, pSatelliteSett[playerid][pSLSETTS]); cSatelliteStatus{playerid} = 2; SelectTextDraw(playerid, 0xFFFFFFFF); } return true; } 7. Ко всем командам: CMD:connect(playerid) { if(cSatelliteStatus{playerid} == 1 || cSatelliteStatus{playerid} == 2) return SendClientMessage(playerid, 0xAFAFAFFF, !"Вы уже подключены к спутнику!"); new Float: x, Float: y, Float: z; GetPlayerPos(playerid, x, y, z); // Записываем координаты игрока для того, что бы после отключения со спутника заспанвить на место pCoords[playerid][0] = x; pCoords[playerid][1] = y; pCoords[playerid][2] = z; SetPlayerPos(playerid, pCoords[playerid][0], pCoords[playerid][1], pCoords[playerid][2]-80); SetPlayerCameraPos(playerid, pCoords[playerid][0], pCoords[playerid][1], pCoords[playerid][2] + 40); SetPlayerCameraLookAt(playerid, pCoords[playerid][0], pCoords[playerid][1], pCoords[playerid][2] - 90); TogglePlayerControllable(playerid , 0); // Замораживаем игрока // Загрузка спутника | Информация для игрока pSatellite[playerid][0] = CreatePlayerTextDraw(playerid, 213.5999, 241.1003, "~y~CHECK.. ~w~€AЊYCK_C…CЏEM‘..."); // Запуск системы PlayerTextDrawLetterSize(playerid, pSatellite[playerid][0], 0.2074, 1.0399); PlayerTextDrawAlignment(playerid, pSatellite[playerid][0], 1); PlayerTextDrawColor(playerid, pSatellite[playerid][0], -1); PlayerTextDrawBackgroundColor(playerid, pSatellite[playerid][0], 255); PlayerTextDrawFont(playerid, pSatellite[playerid][0], 2); PlayerTextDrawSetProportional(playerid, pSatellite[playerid][0], 1); PlayerTextDrawSetShadow(playerid, pSatellite[playerid][0], 0); pSatellite[playerid][1] = CreatePlayerTextDraw(playerid, 213.1999, 250.6009, "~y~CHECK..~w~ ЊOѓK‡”ЌEH…E_K_CЊYЏH…KAM"); // Подключение к спутникам PlayerTextDrawLetterSize(playerid, pSatellite[playerid][1], 0.2074, 1.0399); PlayerTextDrawAlignment(playerid, pSatellite[playerid][1], 1); PlayerTextDrawColor(playerid, pSatellite[playerid][1], -1); PlayerTextDrawBackgroundColor(playerid, pSatellite[playerid][1], 255); PlayerTextDrawFont(playerid, pSatellite[playerid][1], 2); PlayerTextDrawSetProportional(playerid, pSatellite[playerid][1], 1); PlayerTextDrawSetShadow(playerid, pSatellite[playerid][1], 0); pSatellite[playerid][2] = CreatePlayerTextDraw(playerid, 213.0999, 259.9014, "~y~CHECK..~w~ ЊPO‹EPKA_COEѓ…HEH…•"); // Проверка соединения PlayerTextDrawLetterSize(playerid, pSatellite[playerid][2], 0.2074, 1.0399); PlayerTextDrawAlignment(playerid, pSatellite[playerid][2], 1); PlayerTextDrawColor(playerid, pSatellite[playerid][2], -1); PlayerTextDrawBackgroundColor(playerid, pSatellite[playerid][2], 255); PlayerTextDrawFont(playerid, pSatellite[playerid][2], 2); PlayerTextDrawSetProportional(playerid, pSatellite[playerid][2], 1); PlayerTextDrawSetShadow(playerid, pSatellite[playerid][2], 0); pSatellite[playerid][3] = CreatePlayerTextDraw(playerid, 213.5999, 269.4020, "~y~CHECK..~w~ €A‚PY€KA_…HЏEPЃE†CA"); // Загрузка интерфейса PlayerTextDrawLetterSize(playerid, pSatellite[playerid][3], 0.2074, 1.0399); PlayerTextDrawAlignment(playerid, pSatellite[playerid][3], 1); PlayerTextDrawColor(playerid, pSatellite[playerid][3], -1); PlayerTextDrawBackgroundColor(playerid, pSatellite[playerid][3], 255); PlayerTextDrawFont(playerid, pSatellite[playerid][3], 2); PlayerTextDrawSetProportional(playerid, pSatellite[playerid][3], 1); PlayerTextDrawSetShadow(playerid, pSatellite[playerid][3], 0); pSatellite[playerid][4] = CreatePlayerTextDraw(playerid, 213.0000, 204.1336, "LD_SPAC:white"); // Прогресс Бар PlayerTextDrawTextSize(playerid, pSatellite[playerid][4], 0.0000, 10.0000); PlayerTextDrawAlignment(playerid, pSatellite[playerid][4], 1); PlayerTextDrawColor(playerid, pSatellite[playerid][4], 606348543); PlayerTextDrawBackgroundColor(playerid, pSatellite[playerid][4], 255); PlayerTextDrawFont(playerid, pSatellite[playerid][4], 4); PlayerTextDrawSetProportional(playerid, pSatellite[playerid][4], 0); PlayerTextDrawSetShadow(playerid, pSatellite[playerid][4], 0); for(new gSL; gSL < 9; gSL++) TextDrawShowForPlayer(playerid, gSatellite[gSL]); for(new pSL; pSL < 4; pSL++) PlayerTextDrawShow(playerid, pSatellite[playerid][pSL]); cSatelliteStatusLoad[playerid] = SetTimerEx("@__LoadSatellite", 500, true, "d", playerid); cSatelliteStatus{playerid} = 1; return 1; } #Rips - Функционал и копия дизайна (99%) Недостатки: 1. Не хватает системы вызова отряд S.W.A.T 2. Обновление координат на управлении спутника 3. Кнопок приближения камеры 4. Восстановление курсора при нажатии ESC 5. Обновления статуса передвижения камеры Исходный код в new.pwn: ЯндексДиск[spoiler=Screenshot]
  24. krabik-1337@mail.ru

    Время в АФК.

    Система подссчитывает ваше время проведенное в AFK. [spoiler=Скрин:] [spoiler=Ко всем new:]new afktime[MAX_PLAYERS]; [spoiler=в public OnPlayerConnect:]afktime[playerid] = -60; // [-60 меняйте на время, отведенное на авторизацию] [spoiler=в public OnPlayerSpawn:]afktime[playerid] = 0; [spoiler=в public OnPlayerDeath:]afktime[playerid] = -3; [spoiler=в OnGameModeInit:]SetTimer("AFKSystem", 1000, 1); [spoiler=в public OnPlayerUpdate:]if(afktime[playerid] > -3) { if(afktime[playerid] > 0) { new string[128]; format(string,sizeof(string),"Вы простояли в афк: %s",ConvertSeconds(afktime[playerid])); SendClientMessage(playerid, COLOR_ORANGE, string); SetPlayerChatBubble(playerid, "АФК: завершено", COLOR_WHITE, 10.0, 1); } afktime[playerid] = 0; } [spoiler=в конец мода:]forward AFKSystem(); public AFKSystem() { for(new playerid;playerid < MAX_PLAYERS;playerid++) { if(IsPlayerConnected(playerid)) { if(afktime[playerid] == 0) afktime[playerid] -= 1; else if(afktime[playerid] == -1) { afktime[playerid] = 1; new string[128]; format(string, sizeof(string), "АФК: %s", ConvertSeconds(afktime[playerid])); SetPlayerChatBubble(playerid, string, COLOR_WHITE, 10.0, 70000000); } else if(afktime[playerid] > 0) { new string[255]; afktime[playerid] += 1; format(string, sizeof(string), "АФК: %s", ConvertSeconds(afktime[playerid])); SetPlayerChatBubble(playerid, string, COLOR_WHITE, 10.0, 70000000); } } } } stock ConvertSeconds(time) { new string[128]; if(time < 60) format(string, sizeof(string), "%d секунд", time); else if(time == 60) string = "1 минуту"; else if(time > 60 && time < 3600) { new Float: minutes; new seconds; minutes = time / 60; seconds = time % 60; format(string, sizeof(string), "%.0f мин. и %d сек.", minutes, seconds); } else if(time == 3600) string = "1 час"; else if(time > 3600) { new Float: hours; new minutes_int; new Float: minutes; new seconds; hours = time / 3600; minutes_int = time % 3600; minutes = minutes_int / 60; seconds = minutes_int % 60; format(string, sizeof(string), "%.0f:%.0f:%d", hours, minutes, seconds); } return string; }
  25. 1. Создаем переменную отвечающую за место тела: static tatto[MAX_PLAYERS][5]; 2. Создаем массив с названиями татуировок: static const tattoo_name[5][30] = {"Отсутствует", "Эмблема семья", "Крестного отца", "Роза обвивающая кинжал", "Ганстер закован в кандалы"}; 3. Создаем команды на показ татуировок, и набитие татуировки CMD:stuffs(playerid, params[]) { if(sscanf(params, "i", params[0])) return SendClientMessage(playerid, -1, !"Используйте: /stuffs [playerid]"); new string[149+40]; format(string, sizeof(string), "{FFFFFF}\t\tТатуировки:\n\nНа шее: {BCD270}%s {FFFFFF}| На туловище: {BCD270}%s\n{FFFFFF}На руке: {BCD270}%s{FFFFFF} | На спине: {BCD270}%s", tattoo_name[tatto[playerid][1]], tattoo_name[tatto[playerid][2]], tattoo_name[tatto[playerid][3]], tattoo_name[tatto[playerid][4]]); ShowPlayerDialog(params[0], 0000, DIALOG_STYLE_MSGBOX, /*Переменная Вашего ника*/, string, !"Закрыть", !""); return 1; } CMD:stuff(playerid, params[]) { if(/*Переменная Вашей фракции*/) return SendClientMessage(playerid, -1, !"Ошибка: Данная команда доступна только мафиям!"); if(sscanf(params, "ii", params[0], params[1])) { SendClientMessage(playerid, -1, !"Используйте: /stuff [playerid] [Часть тела [1-4]]"); SendClientMessage(playerid, -1, !"Выберите часть тела:"); SendClientMessage(playerid, -1, !"{BCD270}»{FFFFFF} На шею: Эмблема семья"); SendClientMessage(playerid, -1, !"{BCD270}»{FFFFFF} На туловище: Рисунок - Крестного отца"); SendClientMessage(playerid, -1, !"{BCD270}»{FFFFFF} На руку: Изображение - Роза обвивающая кинжал"); SendClientMessage(playerid, -1, !"{BCD270}»{FFFFFF} На спину: Рисунок - Ганстер закован в кандалы"); return 1; } if(params[1] < 1 || params[1] > 4) return SendClientMessage(playerid, -1, !"Ошибка: Часть тела может быть от 0 до 4!"); tatto[params[0]][params[1]] = params[1]; new form_one[72+MAX_PLAYER_NAME]; format(form_one, sizeof(form_one), "{FFFFFF}\n\nВы успешно набили татуировку члену организации: {BCD270}%s", /*Переменная Вашего ника*/); ShowPlayerDialog(playerid, 0000, DIALOG_STYLE_MSGBOX, !"Информация", form_one, !"Закрыть", !""); GameTextForPlayer(playerid, !"Successful", 5000, 1); new form_two[140+MAX_PLAYER_NAME+30]; format(form_two, sizeof(form_two), "{FFFFFF}\n\n%s набил вам татуировку: {BCD270}%s\n\nТеперь вы надолго связаны со своей организацией\nи вам не легко будет начать новую жизнь", /*Переменная Вашего ника*/, tattoo_name[tatto[params[0]][params[1]]]); ShowPlayerDialog(params[0], 0000, DIALOG_STYLE_MSGBOX, !"Информация", form_two, !"Закрыть", !""); GameTextForPlayer(params[0], !"Successful", 5000, 1); return 1; }
×

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

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