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

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

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

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

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

Тип контента


Форумы

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

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

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


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

  • Начало

    Конец


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

  • Начало

    Конец


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

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

  1. Хелоу ребята! Держите работу шахтёра для начала ко всем new добавляем new SahtaJob; //пикап устройства new Rabota[MAX_PLAYERS]; //проверка на работу new ZolotoAll[MAX_PLAYERS]; //всего золота собрано new PlayerOldSkin[MAX_PLAYERS]; //запишет ваш скин старый в public OnGameModeInit() добавляем SahtaJob = CreatePickup(1275,23,2750.3560,-2209.7473,17.9163); в public OnPlayerConnect(playerid) добавим Rabota[playerid] = 0; ZolotoAll[playerid] = 0; в public OnPlayerEnterCheckpoint(playerid) действие на чекпойнт if(GetPVarInt(playerid,"Nesti") == 1) { DisablePlayerCheckpoint(playerid); RemovePlayerAttachedObject(playerid,4); ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 1); SendClientMessage(playerid,0xFFFFFFFF,"Вы донесли золото на склад"); SetPlayerAttachedObject(playerid, 3, 18634, 6, 0.078222, 0.000000, 0.110844, 298.897308, 264.126861, 193.350555, 1.000000, 1.000000, 1.000000); SetPVarInt(playerid,"Nesti",0); SetPVarInt(playerid,"Proverka",0); return true; } в public OnPlayerPickUpPickup(playerid, pickupid) создадим действие на пикап if(pickupid == SahtaJob) { if(Rabota[playerid] == 0) { ShowPlayerDialog(playerid,14,DIALOG_STYLE_MSGBOX,"Устройство Шахта","Шахта - вы хотите начать работать Шахтёра?\nОплата за 1 kg добытой руды составляет 10$ \n\nВы действительно хотите устроиться на работу шахтёра?","Далее", "Выход"); return true; } else if(Rabota[playerid] == 1) { format(string, sizeof(string),"Шахта - вы хотите уволиться с работы Шахтёра?\nШахта выплатить вам %d$ за добытое золото\n\nВы действительно хотите уволиться с работы шахтёра?",ZolotoAll[playerid]*10); ShowPlayerDialog(playerid,14,DIALOG_STYLE_MSGBOX,"Увольнение Шахта",string,"Далее", "Выход"); return true; } } в public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) сделаем вывод диалога на экран if(dialogid== 14) // Шахта { if(response) { if(Rabota[playerid] == 0) { Rabota[playerid] = 1; ZolotoAll[playerid] = 0; PlayerOldSkin[playerid] = GetPlayerSkin(playerid); SetPlayerSkin(playerid, 260); SetPlayerAttachedObject(playerid, 3, 18634, 6, 0.078222, 0.000000, 0.110844, 298.897308, 264.126861, 193.350555, 1.000000, 1.000000, 1.000000); SendClientMessage(playerid,0xFFFFFFFF,"Вы успешно устроились на работу шахтёра!"); SendClientMessage(playerid,0xFFFFFFFF,"Пройдите в шахту для начала добычи золота [золото находится на камнях в шахте]!"); return true; } else { DisablePlayerCheckpoint(playerid); ApplyAnimation(playerid,"PED", "IDLE_tired", 4.1, 0, 1, 1, 0, 1); SetPlayerSkin(playerid,PlayerOldSkin[playerid]); TextDrawHideForPlayer(playerid,WoodDraw[playerid]); SendClientMessage(playerid,COLOR_WHITE,"{00FF00}Вы успешно уволились с работы шахтёра."); format(string, sizeof(string),"{00FF00}Вы добыли {408080}%d kg{00FF00} руды и заработали %d$",ZolotoAll[playerid],ZolotoAll[playerid]*10); SendClientMessage(playerid,COLOR_WHITE,string); GiveMoney(playerid,ZolotoAll[playerid]*10); ZolotoAll[playerid] = 0; Rabota[playerid] = 0; SetPVarInt(playerid,"Proverka",0); SetPVarInt(playerid,"Nesti",0); RemovePlayerAttachedObject(playerid,4); RemovePlayerAttachedObject(playerid,3); return true; } } } в public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) создадим действие на кнопку ALT чтобы начал добывать золото if(newkeys == 1024) { if(MestaSahta(playerid)) { if(Rabota[playerid] == 1) { if(GetPVarInt(playerid,"Proverka") > 0)return(playerid,0xACFF59FF,"Вы уже добыли руду"); SendClientMessage(playerid,0xACFF59FF,"- Вы начали добывать золото"); ApplyAnimation(playerid, "SWORD", "sword_4", 4.0, 1, 0, 0, 0, 0); SetPVarInt(playerid,"Proverka",1); SetTimerEx("GiveZoloto", 3000, false, "i", playerid); return true; } } } и в конец мода добавим таймер и места для добычи золота forward GiveZoloto(playerid); public GiveZoloto(playerid) { ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 1, 1); RemovePlayerAttachedObject(playerid, 3); SendClientMessage(playerid,0xFFFFFFFF,"Отнесите золото на склад!"); SetPlayerAttachedObject(playerid, 4, 2936, 1, 0.184699, 0.426247, 0.000000, 259.531341, 80.949592, 0.000000, 0.476124, 0.468181, 0.470769); SetPlayerCheckpoint(playerid,2756.5317,-2211.5769,17.9146,3.0); SetPlayerChatBubble(playerid,"{00FF00}+6",0x00FF00FF,30.0,8000); ZolotoAll[playerid] += 6; SetPVarInt(playerid,"Nesti",1); return true; } stock MestaSahta(playerid) { if(IsPlayerInRangeOfPoint(playerid,1.8,2758.6245,-2227.7559,17.9254) || IsPlayerInRangeOfPoint(playerid,1.8,2756.8035,-2230.5139,17.9284) || IsPlayerInRangeOfPoint(playerid,1.8,2759.0605,-2217.2356,17.9175)) {return true;} return false; } Вот и всё вроде 1. Можно добавлять больше мест для золота 2. Ид диалогов замените на свои и координаты тоже 3. Маппинга от работы у меня нету увы для теста создал возле спавна на складе Автор: Неизвестно Переделывал : всю работу переделывал Basis так как были замечены баги и оплошности
  2. Система мероприятий Начнём! Создаём переменные new Teleport = 0; new Float:TeleportFloat[3]; new TeleportInfo[2]; new stringmp[144]; В #define добавляем: #define SCM SendClientMessage #define SCMTA SendClientMessageToAll #define PINFO PlayerInfo #define COLOR_ORANGE 0xFFA500AA // Цвета можно заменить #define COLOR_WHITE 0xFFFFFFAA #define COLOR_GREY 0xAFAFAFFF #define COLOR_GOLD 0xFFD700FF Создаём команду /mp if(strcmp(cmd, "/mp", true) == 0) { if(PINFO[playerid][pAdminLVL] < 4) return SendClientMessage(playerid, COLOR_GREY, "У вас нет прав!"); ShowPlayerDialog(playerid, 5343, DIALOG_STYLE_LIST, "{FF6F00}Меню создания мероприятия", "{FFFFFF}1. Создать/удалить телепорт\n2. Раздать оружие (в радиусе 50)\n3. Раздать жизни (в радиусе 50)\n4. Обезаружить всех (в радиусе 50)", "Выбрать", "Закрыть"); return true; } Создаём команду /tpmp Созадём дело case 5343: { if(!response) return 1; switch(listitem) { case 0: { if(Teleport == 0) { GetPlayerPos(playerid, TeleportFloat[0], TeleportFloat[1], TeleportFloat[2]); TeleportInfo[0] = GetPlayerInterior(playerid); TeleportInfo[1] = GetPlayerVirtualWorld(playerid); Teleport = 1; format(stringmp, sizeof(stringmp), "Администратор %s[%d] открыл телепорт для игроков. Чтобы телепортироваться введите: {0abf12}/tpmp", GN(playerid), playerid); SCMTA(COLOR_GOLD, stringmp, 1); } else { Teleport = 0; format(stringmp, sizeof(stringmp), "Администратор %s[%d] закрыл телепорт для игроков. Телепортирование {CC0000}запрещено", GN(playerid), playerid); SCMTA(COLOR_GOLD, stringmp, 1); } } case 1: return ShowPlayerDialog(playerid, 5346, DIALOG_STYLE_INPUT, "{0CB4D6}Выдача оружия", "{FFFFFF}Введите ID оружия и патроны\nНапример: 31,500\nГде 31 - m4, а 500 патроны", "Выдать", "Назад"); case 2: { foreach (new i : Player) { if(GetDistanceBetweenPlayers(playerid, i) > 50) continue; SetPlayerHealthAC(i, 100.0); SCM(i, COLOR_WHITE, "{CC0000}[Информация] {FFFFFF}Администратор выдал Вам жизни для участия мероприятии!"); } } case 3: { foreach (new i : Player) { if(GetDistanceBetweenPlayers(playerid,i) > 50) continue; ResetPlayerWeapons(i); SCM(i, COLOR_WHITE, "{CC0000}[Информация] {FFFFFF}Администратор забрал у Вас оружие на время мероприятия!"); } } } ShowPlayerDialog(playerid, 5343, DIALOG_STYLE_LIST, "{0CB4D6}Меню создания мероприятия", "{FFFFFF}1. Создать/удалить телепорт\n2. Раздать оружие (в радиусе 50)\n3. Раздать жизни (в радиусе 50)\n4. Обезаружить всех (в радиусе 50)", "Выбрать", "Закрыть"); return 1; } Создаём дело 2 case 5346: { if(!response) return ShowPlayerDialog(playerid, 5343, DIALOG_STYLE_LIST, "{0CB4D6}Меню создания мероприятия", "{FFFFFF}1. Создать/удалить телепорт\n2. Раздать оружие (в радиусе 50)\n3. Раздать жизни (в радиусе 50)\n4. Обезаружить всех (в радиусе 50)", "Выбрать", "Закрыть"); if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 5346, DIALOG_STYLE_INPUT, "{0CB4D6}Выдача оружия", "{FFFFFF}Введите id оружия и патроны\nПример: 31,500\nГде 31 m4 а 500 патроны", "Выдать", "Назад"); else if(strfind(inputtext,",", true) != -1) { new razdel[2][24]; split(inputtext, razdel, ','); foreach (new i : Player) { if(GetDistanceBetweenPlayers(playerid, i) > 50) continue; GivePlayerWeaponAC(i, strval(razdel[0]), strval(razdel[1])); SCM(i, COLOR_WHITE, "{CC0000}[Информация] {FFFFFF}Администратор выдал Вам оружие для мероприятия. В случае DM - Варн!"); } } return 1; } Создаём дело 3 case 3333: { if(!response) return 1; SetPlayerPos(playerid, TeleportFloat[0], TeleportFloat[1]+2, TeleportFloat[2]); SetPlayerInterior(playerid, TeleportInfo[0]); SetPlayerVirtualWorld(playerid, TeleportInfo[1]); SCM(playerid, COLOR_ORANGE, "Вы были {0abf12}успешно {FFA500}телепортированы на мероприятие"); return 1; } case/GN(playerid)/playerid/pAdminLVL - заменять на свое значение Скриншёты Готово!
  3. Rustem

    Новая мерия

    Всем привет. Хочу представить вам свою первую работу!
  4. Доброе утро друзья! Выкладываю для вас TextDraw магазина - иконки замените на свои new PlayerText:Shop[51][MAX_PLAYERS]; Shop[0][playerid] = CreatePlayerTextDraw(playerid,580.000000, 150.000000, "_"); PlayerTextDrawBackgroundColor(playerid,Shop[0][playerid], 255); PlayerTextDrawFont(playerid,Shop[0][playerid], 1); PlayerTextDrawLetterSize(playerid,Shop[0][playerid], 0.500000, 27.099996); PlayerTextDrawColor(playerid,Shop[0][playerid], -1); PlayerTextDrawSetOutline(playerid,Shop[0][playerid], 0); PlayerTextDrawSetProportional(playerid,Shop[0][playerid], 1); PlayerTextDrawSetShadow(playerid,Shop[0][playerid], 1); PlayerTextDrawUseBox(playerid,Shop[0][playerid], 1); PlayerTextDrawBoxColor(playerid,Shop[0][playerid], -424540161); PlayerTextDrawTextSize(playerid,Shop[0][playerid], 52.000000, 51.000000); PlayerTextDrawSetSelectable(playerid,Shop[0][playerid], 0); Shop[1][playerid] = CreatePlayerTextDraw(playerid,125.000000, 149.000000, "shop_background"); PlayerTextDrawBackgroundColor(playerid,Shop[1][playerid], 0); PlayerTextDrawFont(playerid,Shop[1][playerid], 5); PlayerTextDrawLetterSize(playerid,Shop[1][playerid], 0.500000, 1.000000); PlayerTextDrawColor(playerid,Shop[1][playerid], 983295); PlayerTextDrawSetOutline(playerid,Shop[1][playerid], 1); PlayerTextDrawSetProportional(playerid,Shop[1][playerid], 1); PlayerTextDrawUseBox(playerid,Shop[1][playerid], 1); PlayerTextDrawBoxColor(playerid,Shop[1][playerid], 0); PlayerTextDrawTextSize(playerid,Shop[1][playerid], 451.000000, 246.000000); PlayerTextDrawSetPreviewModel(playerid,Shop[1][playerid], 19376); PlayerTextDrawSetPreviewRot(playerid,Shop[1][playerid], 0.000000, 0.000000, 90.000000, 0.400000); PlayerTextDrawSetSelectable(playerid,Shop[1][playerid], 0); Shop[2][playerid] = CreatePlayerTextDraw(playerid,56.000000, 149.000000, "category_1_skins"),PlayerTextDrawSetPreviewRot(playerid, Shop[2][playerid], -10.000000, 0.000000, 0.000000, 1.000000); Shop[3][playerid] = CreatePlayerTextDraw(playerid,56.000000, 190.000000, "category_2_head"),PlayerTextDrawSetPreviewRot(playerid, Shop[3][playerid],-10.000000, 0.000000, 130.000000, 1.000000); Shop[4][playerid] = CreatePlayerTextDraw(playerid,56.000000, 231.000000, "category_3_glass"),PlayerTextDrawSetPreviewRot(playerid, Shop[4][playerid], -15.000000, 0.000000, 120.000000, 1.000000); Shop[5][playerid] = CreatePlayerTextDraw(playerid,56.000000, 272.000000, "category_4_car"),PlayerTextDrawSetPreviewRot(playerid, Shop[5][playerid], -15.000000, 0.000000, 40.000000, 1.000000); Shop[6][playerid] = CreatePlayerTextDraw(playerid,56.000000, 313.000000, "category_5_features(vip,double score etc)"),PlayerTextDrawSetPreviewRot(playerid, Shop[6][playerid], -90.000000, 180.000000, 0.000000, 1.000000); Shop[7][playerid] = CreatePlayerTextDraw(playerid,56.000000, 354.000000, "category_6_mask"),PlayerTextDrawSetPreviewRot(playerid, Shop[7][playerid], 0.000000, 0.000000, 50.000000, 1.000000); for(new i = 2,models[6] = {299,18963,19011,411,19792,19038}; i { PlayerTextDrawBackgroundColor(playerid,Shop[i][playerid], 68032255); PlayerTextDrawFont(playerid,Shop[i][playerid], 5); PlayerTextDrawLetterSize(playerid,Shop[i][playerid], 0.050000, 1.099900); PlayerTextDrawColor(playerid,Shop[i][playerid], -1); PlayerTextDrawSetOutline(playerid,Shop[i][playerid], 1); PlayerTextDrawSetProportional(playerid,Shop[i][playerid], 1); PlayerTextDrawUseBox(playerid,Shop[i][playerid], 1); PlayerTextDrawBoxColor(playerid,Shop[i][playerid], 0); PlayerTextDrawTextSize(playerid,Shop[i][playerid], 68.000000, 42.000000); PlayerTextDrawSetPreviewModel(playerid,Shop[i][playerid], models[i-2]); PlayerTextDrawSetSelectable(playerid,Shop[i][playerid], 1); } Shop[8][playerid] = CreatePlayerTextDraw(playerid,187.000000, 173.000000, "_"); Shop[9][playerid] = CreatePlayerTextDraw(playerid,296.000000, 173.000000, "_"); Shop[10][playerid] = CreatePlayerTextDraw(playerid,405.000000, 173.000000, "_"); Shop[11][playerid] = CreatePlayerTextDraw(playerid,514.000000, 173.000000, "_"); Shop[12][playerid] = CreatePlayerTextDraw(playerid,187.000000, 276.000000, "_"); Shop[13][playerid] = CreatePlayerTextDraw(playerid,296.000000, 276.000000, "_"); Shop[14][playerid] = CreatePlayerTextDraw(playerid,405.000000, 276.000000, "_"); Shop[15][playerid] = CreatePlayerTextDraw(playerid,514.000000, 276.000000, "_"); for(new i = 8; i { PlayerTextDrawAlignment(playerid,Shop[i][playerid], 2); PlayerTextDrawBackgroundColor(playerid,Shop[i][playerid], 255); PlayerTextDrawFont(playerid,Shop[i][playerid], 1); PlayerTextDrawLetterSize(playerid,Shop[i][playerid], 0.500000, 10.400005); PlayerTextDrawColor(playerid,Shop[i][playerid], -1); PlayerTextDrawSetOutline(playerid,Shop[i][playerid], 0); PlayerTextDrawSetProportional(playerid,Shop[i][playerid], 1); PlayerTextDrawSetShadow(playerid,Shop[i][playerid], 1); PlayerTextDrawUseBox(playerid,Shop[i][playerid], 1); PlayerTextDrawBoxColor(playerid,Shop[i][playerid], 623059967); PlayerTextDrawTextSize(playerid,Shop[i][playerid], 136.000000, 100.000000); PlayerTextDrawSetSelectable(playerid,Shop[i][playerid], 0); } Shop[16][playerid] = CreatePlayerTextDraw(playerid,137.000000, 173.000000, "item_1"); Shop[17][playerid] = CreatePlayerTextDraw(playerid,246.000000, 173.000000, "item_2"); Shop[18][playerid] = CreatePlayerTextDraw(playerid,355.000000, 173.000000, "item_3"); Shop[19][playerid] = CreatePlayerTextDraw(playerid,464.000000, 173.000000, "item_4"); Shop[20][playerid] = CreatePlayerTextDraw(playerid,137.000000, 276.000000, "item_5"); Shop[21][playerid] = CreatePlayerTextDraw(playerid,246.000000, 276.000000, "item_6"); Shop[22][playerid] = CreatePlayerTextDraw(playerid,355.000000, 276.000000, "item_7"); Shop[23][playerid] = CreatePlayerTextDraw(playerid,464.000000, 276.000000, "item_8"); for(new i = 16; i { PlayerTextDrawBackgroundColor(playerid,Shop[i][playerid], 235802623); PlayerTextDrawFont(playerid,Shop[i][playerid], 5); PlayerTextDrawLetterSize(playerid,Shop[i][playerid], 0.500000, 1.000000); PlayerTextDrawColor(playerid,Shop[i][playerid], -1); PlayerTextDrawSetOutline(playerid,Shop[i][playerid], 0); PlayerTextDrawSetProportional(playerid,Shop[i][playerid], 1); PlayerTextDrawSetShadow(playerid,Shop[i][playerid], 1); PlayerTextDrawUseBox(playerid,Shop[i][playerid], 1); PlayerTextDrawBoxColor(playerid,Shop[i][playerid], 255); PlayerTextDrawTextSize(playerid,Shop[i][playerid], 100.000000, 80.000000); PlayerTextDrawSetPreviewModel(playerid,Shop[i][playerid], 18631);//default: question mark PlayerTextDrawSetPreviewRot(playerid,Shop[i][playerid], -16.000000, 0.000000, -55.000000, 1.000000); PlayerTextDrawSetSelectable(playerid,Shop[i][playerid], 1); } Shop[24][playerid] = CreatePlayerTextDraw(playerid,185.000000, 176.000000, "item 1");//shark Shop[25][playerid] = CreatePlayerTextDraw(playerid,294.000000, 176.000000, "item 2");//dolphin Shop[26][playerid] = CreatePlayerTextDraw(playerid,403.000000, 176.000000, "item 3");//sword Shop[27][playerid] = CreatePlayerTextDraw(playerid,513.000000, 176.000000, "item 4");//fan Shop[28][playerid] = CreatePlayerTextDraw(playerid,185.000000, 278.000000, "item 5");//skate Shop[29][playerid] = CreatePlayerTextDraw(playerid,293.000000, 278.000000, "item 6");//parrot Shop[30][playerid] = CreatePlayerTextDraw(playerid,406.000000, 278.000000, "item 7");//police shield Shop[31][playerid] = CreatePlayerTextDraw(playerid,513.000000, 278.000000, "item 8");//vest for(new i = 24; i { PlayerTextDrawAlignment(playerid,Shop[i][playerid], 2); PlayerTextDrawBackgroundColor(playerid,Shop[i][playerid], 255); PlayerTextDrawFont(playerid,Shop[i][playerid], 2); PlayerTextDrawLetterSize(playerid,Shop[i][playerid], 0.300000, 1.899999); PlayerTextDrawColor(playerid,Shop[i][playerid], -1462501377); PlayerTextDrawSetOutline(playerid,Shop[i][playerid], 0); PlayerTextDrawSetProportional(playerid,Shop[i][playerid], 1); PlayerTextDrawSetShadow(playerid,Shop[i][playerid], 0); PlayerTextDrawSetSelectable(playerid,Shop[i][playerid], 0); } Shop[32][playerid] = CreatePlayerTextDraw(playerid,129.000000, 253.000000, "cost_1"); Shop[33][playerid] = CreatePlayerTextDraw(playerid,238.000000, 253.000000, "cost_2"); Shop[34][playerid] = CreatePlayerTextDraw(playerid,348.000000, 253.000000, "cost_3"); Shop[35][playerid] = CreatePlayerTextDraw(playerid,458.000000, 253.000000, "cost_4"); Shop[36][playerid] = CreatePlayerTextDraw(playerid,129.000000, 356.000000, "cost_5"); Shop[37][playerid] = CreatePlayerTextDraw(playerid,238.000000, 356.000000, "cost_6"); Shop[38][playerid] = CreatePlayerTextDraw(playerid,348.000000, 356.000000, "cost_7"); Shop[39][playerid] = CreatePlayerTextDraw(playerid,458.000000, 356.000000, "cost_8"); for(new i = 32; i { PlayerTextDrawBackgroundColor(playerid,Shop[i][playerid], 0); PlayerTextDrawFont(playerid,Shop[i][playerid], 5); PlayerTextDrawLetterSize(playerid,Shop[i][playerid], 0.500000, 1.000000); PlayerTextDrawColor(playerid,Shop[i][playerid], -1); PlayerTextDrawSetOutline(playerid,Shop[i][playerid], 0); PlayerTextDrawSetProportional(playerid,Shop[i][playerid], 1); PlayerTextDrawSetShadow(playerid,Shop[i][playerid], 1); PlayerTextDrawUseBox(playerid,Shop[i][playerid], 1); PlayerTextDrawBoxColor(playerid,Shop[i][playerid], 0); PlayerTextDrawTextSize(playerid,Shop[i][playerid], 33.000000, 15.000000); PlayerTextDrawSetPreviewModel(playerid, Shop[i][playerid], 1274); PlayerTextDrawSetPreviewRot(playerid, Shop[i][playerid], 0.000000, 0.000000, 0.000000, 1.000000); PlayerTextDrawSetSelectable(playerid,Shop[i][playerid], 0); } Shop[40][playerid] = CreatePlayerTextDraw(playerid,181.000000, 254.000000, "2,000");//item cost 1 Shop[41][playerid] = CreatePlayerTextDraw(playerid,289.000000, 254.000000, "4,650");//item cost 2 Shop[42][playerid] = CreatePlayerTextDraw(playerid,400.000000, 254.000000, "21,200");//item cost 3 Shop[43][playerid] = CreatePlayerTextDraw(playerid,510.000000, 254.000000, "14,390");//item cost 4 Shop[44][playerid] = CreatePlayerTextDraw(playerid,181.000000, 357.000000, "7,100");//item cost 5 Shop[45][playerid] = CreatePlayerTextDraw(playerid,291.000000, 357.000000, "8,400");//item cost 6 Shop[46][playerid] = CreatePlayerTextDraw(playerid,399.000000, 357.000000, "16,650");//item cost 7 Shop[47][playerid] = CreatePlayerTextDraw(playerid,510.000000, 357.000000, "19,090");//item cost 8 for(new i = 40; i { PlayerTextDrawAlignment(playerid,Shop[i][playerid], 2); PlayerTextDrawBackgroundColor(playerid,Shop[i][playerid], 102); PlayerTextDrawFont(playerid,Shop[i][playerid], 3); PlayerTextDrawLetterSize(playerid,Shop[i][playerid], 0.449999, 1.399999); PlayerTextDrawColor(playerid,Shop[i][playerid], -1); PlayerTextDrawSetOutline(playerid,Shop[i][playerid], 1); PlayerTextDrawSetProportional(playerid,Shop[i][playerid], 1); PlayerTextDrawSetSelectable(playerid,Shop[i][playerid], 0); } Shop[48][playerid] = CreatePlayerTextDraw(playerid,300.000000, 375.000000, "~ PlayerTextDrawBackgroundColor(playerid,Shop[48][playerid], 255); PlayerTextDrawFont(playerid,Shop[48][playerid], 1); PlayerTextDrawLetterSize(playerid,Shop[48][playerid], 0.559998, 1.700000); PlayerTextDrawColor(playerid,Shop[48][playerid], -1); PlayerTextDrawSetOutline(playerid,Shop[48][playerid], 0); PlayerTextDrawSetProportional(playerid,Shop[48][playerid], 1); PlayerTextDrawSetShadow(playerid,Shop[48][playerid], 1); PlayerTextDrawSetSelectable(playerid,Shop[48][playerid], 1); Shop[49][playerid] = CreatePlayerTextDraw(playerid,369.000000, 375.000000, "~>~"); PlayerTextDrawBackgroundColor(playerid,Shop[49][playerid], 255); PlayerTextDrawFont(playerid,Shop[49][playerid], 1); PlayerTextDrawLetterSize(playerid,Shop[49][playerid], 0.559998, 1.700000); PlayerTextDrawColor(playerid,Shop[49][playerid], -1); PlayerTextDrawSetOutline(playerid,Shop[49][playerid], 0); PlayerTextDrawSetProportional(playerid,Shop[49][playerid], 1); PlayerTextDrawSetShadow(playerid,Shop[49][playerid], 1); PlayerTextDrawSetSelectable(playerid,Shop[49][playerid], 1); Shop[50][playerid] = CreatePlayerTextDraw(playerid,342.000000, 377.000000, "1/7"); PlayerTextDrawAlignment(playerid,Shop[50][playerid], 2); PlayerTextDrawBackgroundColor(playerid,Shop[50][playerid], 255); PlayerTextDrawFont(playerid,Shop[50][playerid], 2); PlayerTextDrawLetterSize(playerid,Shop[50][playerid], 0.469999, 1.399999); PlayerTextDrawColor(playerid,Shop[50][playerid], -1); PlayerTextDrawSetOutline(playerid,Shop[50][playerid], 1); PlayerTextDrawSetProportional(playerid,Shop[50][playerid], 1); PlayerTextDrawSetSelectable(playerid,Shop[50][playerid], 0); Скриншёт Посмотреть изображение Автор: ziponz
  5. Защита от пустых сообщений в конец мода bool:emptyMessage(const string[]) { for(new i; string[i] != 0x0; i++) { switch(string[i]) { case 0x20: continue; default: return false; } } return true; } в OnPlayerText if(emptyMessage(text)) return SendClientMessage(playerid,-1,"[FAIL]: Пустое сообщение!") & 0; return true; Автор: MotoSport
  6. Привет! Предположим, что подключился игрок с ником (именем) "Player", тогда ему будет написано: "Добро пожаловать на сервер" В public OnPlayerConnect(playerid) new PlayerName[30], str[256]; GetPlayerName(playerid, PlayerName, 30); format(str, 256, "Добро пожаловать %s на сервер", PlayerName); SendClientMessage(playerid, 0xFF9900AA, str); Автор: Неизвестно
  7. Привет! Команда для того что бы администратор мог забрать паспорт у игрока Ко всем #define: #define COLOR_GRAD1 0xB4B5B7FF #define COLOR_WHITE 0xFFFFFFAA #define COLOR_GREY 0xAFAFAFAA Вставляем в public OnPlayerCommandText: if (strcmp(cmd, "/clearpass", true) == 0) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pAdmin] >= 6) //Делаем проверку на администратора { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD1, "Используйте: /clearpass [ID]"); return 1; } giveplayerid = ReturnUser(tmp); if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { PlayerInfo[giveplayerid][pPasport] = 0; SendClientMessage(playerid,COLOR_WHITE," Теперь у этого игрока нет паспорта"); SendClientMessage(giveplayerid,COLOR_WHITE," Администратор очистил твой паспорт"); } } else { SendClientMessage(playerid, COLOR_GREY, "Нет такого игрока"); } } else { SendClientMessage(playerid, COLOR_GREY, "Вы не администратор сервера!"); } } return 1; } Готово! Автор: Monolit
  8. Здравствуйте! Команда для парковки автомобиля Команда чтобы припарковать авто самим игроком: if(strcmp(cmd, "/park", true) == 0) { if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GRAD2, "Вы должны быть в авто"); new cars = GetPlayerVehicleID(playerid); if(GetRealID(cars) == -1) return SendClientMessage(playerid, COLOR_GRAD2, "Вы должны быть в своём авто"); if(!strcmp(CarInfo[GetRealID(cars)][cOwner],Name(playerid),false)||!strcmp(CarInfo[GetRealID(cars)][cOwnerm],Name(playerid),false)) { CarInfo[GetRealID(cars)][cFrontBullbars] = 0; GetVehiclePos(cars, CarInfo[GetRealID(cars)][cPx],CarInfo[GetRealID(cars)][cPy],CarInfo[GetRealID(cars)][cPz]); GetVehicleZAngle(cars, CarInfo[GetRealID(cars)][cPa]); SendClientMessage(playerid, -1, "Теперь ваш автомобиль будет припаркован в этом месте"); SaveCar(GetRealID(cars)); return 1; } else return SendClientMessage(playerid, COLOR_GRAD2, "Это не ваш транспорт"); } Команда чтобы припарковать авто Администратором: if(strcmp(cmd, "/apark", true) == 0) { if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GRAD2, "Вы должны быть в авто"); new cars = GetPlayerVehicleID(playerid); if(ServerClosed==1){SendClientMessage(playerid, COLOR_GRAD2, "Кмд временно не работает");return 1;} if(GetRealID(cars) == -1) return SendClientMessage(playerid, COLOR_GRAD2, "Вы должны быть в своём авто"); if(PlayerInfo[playerid][pAdmin] >= 3) { GetVehiclePos(cars, CarInfo[GetRealID(cars)][cPx],CarInfo[GetRealID(cars)][cPy],CarInfo[GetRealID(cars)][cPz]); GetVehicleZAngle(cars, CarInfo[GetRealID(cars)][cPa]); SaveCar(GetRealID(cars)); SendClientMessage(playerid, COLOR_GRAD2, "Теперь этот автомобиль будет припаркован в этом месте"); return 1; } Готово! Автор: Kostyaev
  9. Привет! Команда для подачи обьявления Сама команда: if(strcmp(cmd, "/advertise", true) == 0 || strcmp(cmd, "/ad", true) == 0) { if(IsPlayerConnected(playerid)) { if(gPlayerLogged[playerid] == 0) { SendClientMessage(playerid, COLOR_GREY, "Вы не АВТОРИЗИРОВАНЫ!"); return 1; } if(PlayerInfo[playerid][pMuteTime] > 0) { SendClientMessage(playerid,COLOR_GREY," Тебя заткнули,наверно много говорил!"); return 1; } if(PlayerInfo[playerid][pJailed] > 0) { SendClientMessage(playerid, COLOR_GRAD2, "Вы заключены в тюрьму. Вы сейчас не можете давать объявления."); return 1; } if(PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "Вы не имеете прав давать рекламу."); return 1; } if(PlayerInfo[playerid][pLevel] { SendClientLangMessage(0, playerid, TEAM_CYAN_COLOR, "Рекламу можно давать минимум со 2-го уровня."); return 1; } if(adlimit[playerid] > 0) { SendClientLangMessage(0, playerid, TEAM_CYAN_COLOR, "Ваш лимит исчерпан. Обьявление можно давать не более одного раза в час."); return 1; } GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx { idx++; } new offset = idx; new result[64]; while ((idx { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; new is1=0; new r=0; while(strlen(cmdtext[is1])) { if('0' { new is2=is1+1; new p=0; while(p==0) { if('0' else { strmid(strR[r],cmdtext,is1,is2,255); if(strval(strR[r]) is1=is2; p=1; } } } is1++; } if(r>=4) { new STRname[255]; GetPlayerName(playerid,STRname,255); format(string, sizeof(string), "Подозрение на рекламу %s (ID:%d)",sendername,playerid); ABroadCast(COLOR_LIGHTRED,string,1); for(new z=0;z { new pr2; while((pr2=strfind(cmdtext,strR[z],true))!=-1) for(new i=pr2,j=pr2+strlen(strR[z]);i } return 1; } if(!strlen(result)) { SendClientMessage(playerid, COLOR_GRAD2, "ИНФО: (/ad)vertise [advert text]"); return 1; } new payout = idx * 2; if(GetPlayerMoney(playerid) { format(string, sizeof(string), "* Вы использовали %d знаков, ценой %d руб., но у вас нет денег чтобы заплатить!", offset, payout); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); return 1; } ServerGivePlayerMoney(playerid, - payout); SBizzInfo[7][sbTill] += payout; ExtortionSBiz(7, payout); format(string, sizeof(string), "** %s | Телефон: %d |**", result,PlayerInfo[playerid][pPnumber]); OOCNews(TEAM_GROVE_COLOR,string); adlimit[playerid] = 1; format(string, sizeof(string), "~r~Paid %d PY—.~n~~w~Message contained: %d Characters", payout, idx); GameTextForPlayer(playerid, string, 5000, 5); format(string, sizeof(string), "Объявление дал: %s (ID:%d)",sendername,playerid); ABroadCast(COLOR_LIGHTRED,string,1); } return 1; } Переменная new adlimit[MAX_PLAYERS]; Готово Автор: SHAMAN
  10. Собственно, решил написать более-менее толковый урок по вопросу, затронутому одним из пользователей данного портала. Итак, по теории. Как будем представлять себе весь этот процесс? Ну начнем с того, что есть автовызываемая функция, которая начнет работать тогда, когда автомобилю игрока будет нанесено повреждение. Это OnVehicleDamageStatusUpdate. Имеет она всего два параметра: vehicleid, playerid Собственно, первый отвечает за само авто, а второй - за игрока за рулем. Более подробно почитать об этой функции и посмотреть примеры можно тут. Что понадобится нам помимо этого? Ну непосредственно функции определения количества "жизни" автомобиля, функция выдачи их, а так же функция SetVehicleParamsEx, которой мы все это дело заставим встать на месте и заглохнуть. Итак, по практике. Ну во первых хочется отметить, что функция GetVehicleHealth возвращает значение в виде числа с плавающей точкой. Поэтому нам понадобится переменная типа Float. Создаем, и заносим данные в нее. public OnVehicleDamageStatusUpdate(vehicleid, playerid) { new Float:VehicleHealth; GetVehicleHealth(vehicleid, VehicleHealth);//получаем данные о состоянии авто } Далее следует сравнить полученное значение с цифрой, скажем, 350. После же этого мы выполним наши действия - заглушим авто и выведем игроку сообщение. Для справки: всего у авто 1000 "жизней". public OnVehicleDamageStatusUpdate(vehicleid, playerid) { new Float:VehicleHealth; GetVehicleHealth(vehicleid, VehicleHealth);//получаем данные о состоянии авто if (VehicleHealth< 350.0)//сравниваем { SetVehicleHealth(vehicleid, 350);//даем 350 жизни, чтобы авто не загорелось. SetVehicleParamsEx(vehicleid,false,false,false,false,false,false,false);//все параметры авто на ноль. SendClientMessage(playerid, -1, "Серьезная поломка. Авто заглохло.");//выводим сообщение } return 1; } Кстати хочется отметить, что данная функция может быть случайно вызвана несколько раз (например, если авто заглохло, но вы по инерции прокатились и стукнулись еще пару раз). Чтобы этого не произошло, стоит создать переменную типа bool, и сделать по ней проверку. В итоге выглядеть будет все следующим образом: public OnVehicleDamageStatusUpdate(vehicleid, playerid) { new Float:VehicleHealth; GetVehicleHealth(vehicleid, VehicleHealth);//получаем данные о состоянии авто if (VehicleHealth< 350.0)//сравниваем { SetVehicleHealth(vehicleid, 350);//даем 350 жизни, чтобы авто не загорелось. if(CrashStatus[vehicleid] == true) return 1;// не даем выполниться скрипту дважды SetVehicleParamsEx(vehicleid,false,false,false,false,false,false,false);//все параметры авто на ноль. SendClientMessage(playerid, -1, "Серьезная поломка. Авто заглохло.");//выводим сообщение CrashStatus[vehicleid]=true; } return 1; } В public OnVehicleSpawn обнулим ее: CrashStatus[vehicleid] = false; Ну а ко всем переменным естественно добавим: new bool:CrashStatus[MAX_VEHICLES]; З.Ы. Урок мой, копировать на другие порталы без моего разрешения запрещаю.
  11. В этом уроке мы переходим к разбору третьего стиля диалога: DIALOG_STYLE_LIST. Давайте рассмотрим данный стиль диалога на следующем примере. Допустим нам нужно командой, вызвать меню со списком оружия на выбор. Создаем простейшую команду и внутрь ее пишем функцию вызова диалога. Так как это будет список, нам нужно использовать \n – переход на новую строчку. Т.е. мы пишем название пункта \n название пункта и снова \n. if (strcmp("/weaponlist", cmdtext, true, 10) == 0) { ShowPlayerDialog(playerid,0,DSL,"Список оружия»,«Кольт\nКольт с глушителем\nПустынный орел", "Выбор", "Отмена"); return 1; }Диалог будет выглядеть следующим образом:Перед тем как написать функцию для этого диалогового окна, давайте посмотрим на следующую конструкцию приведенную ниже. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == 0) { if(listitem == 1) //Если был выбран 1 пункт списка { //Выполнить этот код } if(listitem == 2) //Если был выбран 2 пункт списка { //Выполнить этот код } } return 1; }Вот так должен выглядеть код для данного стиля диалога. Тут мы проверяем значениеlistitem, т.е. пункта списка которого мы выберем в диалоге. listitem = 1 – это кольт, значит, в условную конструкцию listitem == 1 мы должны вписать функцию GivePlayerWeapon, чтобы дать оружие игроку. if(listitem == 1) //Если был выбран 1 пункт списка { GivePlayerWeapon(playerid,22,100); //Дать игроку кольт и 100 патронов }То же самое делаем и для остальных listitem. Вписываем ту же строчку, только вместо 22,пишем следующее: 23 – для кольта с глушителем, 24 – для пустынного орла (эти цифры, это ID модели этого оружия). ID модели смотрите на странице «ID оружия». Вообще, приведенный выше пример, очень схож с оператором switch, т.к. мы проверяем значение одного аргумента и в зависимости от этого значения выполняем действие. Тоесть, это все можно заменить на оператор switch, таким образом: public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == 0) { switch(listitem) { case 1: //Если был выбран 1 пункт списка { //Выполнить этот код } case 2: //Если был выбран 1 пункт списка { //Выполнить этот код } } } return 1; }Но все же, если вы хорошо не усвоите этот урок, лучше этим примером не пользоваться Автор Cloud
  12. Smolin

    Ретекстур объекта

    Доброго времени суток. В этом примере я расскажу, как сделать ретекстур объектов. Для начала скачиваем программу Map Editor Цель работы: Научиться пользоваться функцией SetObjectMaterial. Прямая ссылка на источник на wiki SetObjectMaterial Переходим к практике. Открываем Map Editor, ставите объект, куда захотите и какой хотите, в моем случае - киоск (ID: 4638). Помечено галочками - что собрался ретекстурить. Текстура в моем случае будет ID: 4442 (гараж). Жмем на киоск 2 раза и откроется окно: Видим Model Textures Где написано Material: ... - индексы у нас их 10, придется подбирать индекс/ы, я уже подобрал - 10 (Material: 10 split: 10 Tex: brusch). Открываем .txd объекта, у которого будем брать текстуру и копируем название текстуры. В моем случае - будет самая первая текстура (gar_wall1) объекта гаража (4442): Для того, чтобы открыть текстуры объекта, скачиваем эту программу TXD Workshop Теперь всё основное у нас есть. Переходим к заключению. Открываем ваш GM (gamemode) и переходим в паблик OnGameModeInit. В любое место этого коллбэка вставляем: new- переменная объекта (назвать можно по-разному) переменная = CreateDynamicObject(4638, -343.51, 433.54, 11.70, 0.00, 0.00, 0.00); - объект киоска SetDynamicObjectMaterial(вставляем переменную, индекс (в моем случае это 10-ый), ид объекта у которого брали текстуру (в моем случае - гараж), "название текстуры гаража (gen_garages)", "название текстуры (в моем случае (gar_wall1)", по умолчанию здесь оставляем значение - 0); Выходит у нас так: new kiosk; kiosk = CreateDynamicObject(4638, -343.51, 433.54, 11.70, 0.00, 0.00, 0.00); SetDynamicObjectMaterial(kiosk, 10, 4442, "gen_garages", "gar_wall1", 0); Наглядный пример работоспособности: На этом всё, Господа, советую почитать сабж от SHOROOP'a - Почему не стоит злоупотре######ть изменением материалов (нюансы SetObjectMaterial) (http://cr-mp.ru/forum/topic/15110-pochemu-ne-stoit-zloupotrebliat-izmeneniem-mat/) P.S: на крышу киоска не обращайте внимание - стоит мод - зима SHOROOP'a. Остальные вопросы, касающиеся этому сабжу - задавайте здесь.
  13. Здравствуйте! Команда показывает модераторов которые в онлайне Сама команда if (strcmp(cmd,"/moderators",true)==0) { if(IsPlayerConnected(playerid)) { SendClientMessage(playerid, COLOR_YELLOW, "Модераторы Онлайн"); for(new i = 0; i { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pModerators] >= 1 && PlayerInfo[i][pModerators] { new admtext[64]; switch(PlayerInfo[i][pModerators]) { case 6:admtext = "6 LvL Модератор"; case 5:admtext = "5 LVL Модератор"; case 4:admtext = "Гл.Модератор"; case 3:admtext = "Модератор"; case 2:admtext = "Ст.Модератор"; case 1:admtext = "Мл.Модератор"; default:admtext = "Не известный Модератор"; } GetPlayerName(i, sendername, sizeof(sendername)); if(HelperDuty[i] == 0) { strdel(string, 0, sizeof(string)); format(string, 200, "{32CD32}%s: %s ID %d\n", admtext, sendername, i); strcat(str,string); } else { strdel(string, 0, sizeof(string)); format(string, 200, "{32CD32}%s: %s (Задавайте вопросы) ID |%d|\n", admtext, sendername, i); strcat(str,string); } } } } } return true; } Готово! Автор: Artyom_Kurzov
  14. Здравствуйте! Эта команда что то типа Мегофона Сама команда if(strcmp(cmd, "/stop", true) == 0 || strcmp(cmd, "/st", true) == 0) { if(IsPlayerConnected(playerid)) { GetPlayerName(playerid, sendername, sizeof(sendername)); if(gTeam[playerid] == 2 || IsACop(playerid)) { if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1) { format(string, sizeof(string), "[Сотрудник ГИБДД %s:**(((Прижмитесь к обочине))) Сохраняйте спокойствие- проверка документов]", sendername); ProxDetector(60.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW); } else if(PlayerInfo[playerid][pMember] == 20||PlayerInfo[playerid][pLeader] == 20) { format(string, sizeof(string), "[Сотрудник ППС %s:**(((Прижмитесь к обочине))) Сохраняйте спокойствие- проверка документов]", sendername); ProxDetector(60.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW); } printf("%s", string); } else { SendClientMessage(playerid, COLOR_GRAD2, "Вы не ГИБДД/ППС !"); return 1; } } } Автор: Lacoste
  15. Здравствуйте! Команда для показа новостей сервера В в public OnPlayerCommandText: if(strcmp(cmd, "/news", true) == 0) { ShowPlayerDialog(playerid, 1000, DIALOG_STYLE_LIST, "Новости", "12.05.16 - обновление админки\n13.05.16 - новое место спавна\n14.05.16 - анимации больше нет\n14.05.16 - автовокзал у телебшни", "Читать", "Закрыть"); return 1; } public OnDialogResponse: if(dialogid == 1000) { if(response) { if(listitem == 0) { ShowPlayerDialog(playerid, 1001, DIALOG_STYLE_MSGBOX, "Обновление админки", "Сегодня администраторский раздел обновился. Теперь\nдля входа нужно написать команду /авход. После включается хп и\nадмин-команды.", "Ок", "Отмена"); } if(listitem == 1) { ShowPlayerDialog(playerid, 1002, DIALOG_STYLE_MSGBOX, "Новое место спавна", "Теперь все игроки будут появляться у Останкинской\n телебашни.", "Ок", "Отмена"); } if(listitem == 2) { ShowPlayerDialog(playerid, 1003, DIALOG_STYLE_MSGBOX, "Анимации больше нет", "Администрация сервера постановила указ о запрете ани-\nмации. Пользователи не соблюдали его (их список можно узнать у\n Создателя) и было решено удалить анимацию.", "Ок", "Отмена"); } if(listitem == 3) { ShowPlayerDialog(playerid, 1004, DIALOG_STYLE_MSGBOX, "Автовокзал у телебашни", "На сервере появился автовокзал №3. Его построили\n у Останкинской телебашни.\nСписок автовокзалов\n№1 - у Кремля\n№2 - у вокзала Южного\n№3 - у Останкинской телебашни.", "Ок", "Отмена"); } } } Готово! Автор: danilasar
  16. Здравствуйте! Эта команда для скрытия или показа ника Сама команда if (strcmp("/nameoff", cmdtext, true) == 0) // Команда,меняете на свою. { // Можете поставить проверку на администратора.(По желанию.) for(new i = 0; i ShowPlayerNameTagForPlayer(playerid, i, false); // Убираем ники всех игроков. return 1; } if (strcmp("/nameon", cmdtext, true) == 0) // Команда,меняете на свою. { // Можете поставить проверку на администратора.(По желанию.) for(new i = 0; i ShowPlayerNameTagForPlayer(playerid, i, true); // Показываем ники всех игроков return 1; } Автор: Неизвестно
  17. Здравствуйте! Всем привет, сегодня я выложу для вас команду, которая называется "Уголовный Кодекс". В этом Уголовном Кодексе вы можете узнать сколько и за что дают звёзды, команда полезна, особенно для слабых компьютеров, ибо не заходить на форум.. Вообщем команда совсем легкая, кому нужна, берём. Добавляем ко всем 3Dtext: Create3DTextLabel("{ffdb58}Уголовный Кодекс\n{ffffff}Введите {ffdb58}/uk {ffffff}для прочтения.",0xFFFFFFFF,256.9379,64.6946,1003.6406,20.0,1,1); Создаём команду if(strcmp(string, "/uk", true) == 0) { if(gPlayerLogged[playerid] == 1) { if(PlayerToPoint(3.0, playerid, 256.9379,64.6946,1003.6406)) { new ukzubec[][] = { { "1.Покушение на человека - 2 звезды.\n" } , { "2.Покушение на законника - 3 звезды.\n" } , { "3.Стрельба по транспорту/человеку - 2 звезды.\n" } , { "4.Оскорбление человека - 1 звезда.\n" } , { "5.Оскорбление сотрудника Закона - 2 звезды.\n" } , { "6.Хранение наркотиков/материалов- 2 звезды.\n" } , { "7.Уход от проверки Правоохранительных Органов - 2 звезды.\n" } , { "8.Нарушение ПДД - 1 звезда.\n" } , { "9.Покрытие убийцы- 1 звезда.\n" } , { "10.Ложный вызов - 1 звезда.\n" } , } ; new dialogzub[600]; for(new i; i SPD(playerid,174,DIALOG_STYLE_MSGBOX,"Уголовный Кодексñ", dialogzub, "Закрыть", ""); return true; } } return 1; }
  18. Здравствуй! Команда цепляет авто к эвакуатору. Подойдет для RolePlay-модов Сама команда if(strcmp(cmd,"/tow",true)==0) { if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 525) // Проверка на модель эвакуатора { SendClientMessage(playerid,0xFFFF00AA,"Пытаюсь взять машину на буксир"); new Float:pX,Float:pY,Float:pZ; GetPlayerPos(playerid,pX,pY,pZ); new Float:vX,Float:vY,Float:vZ; new Found=0; new vid=0; while((vid { vid++; GetVehiclePos(vid,vX,vY,vZ); if ((floatabs(pX-vX) { Found=1; if (IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid))) { DetachTrailerFromVehicle(GetPlayerVehicleID(playerid)); } AttachTrailerToVehicle(vid,GetPlayerVehicleID(playerid)); SendClientMessage(playerid,0xFFFF00AA,"Взял!"); } } if (!Found) { SendClientMessage(playerid,0xFFFF00AA,"Поблизости ниодной машины."); } } return 1; } Готово! Автор: zoloto565
  19. Привет! Удаление авто с сервера без cars.cfg на MxINI Сама команда if(strcmp(cmd, "/deletecar", true) == 0) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pAdmin] == 10) { new cars = GetPlayerVehicleID(playerid); new carids = CarInfo[cars][cID]; new sss[50]; format(string,sizeof(string),"cars/%d.ini",carids); fremove(string); format(sss,sizeof(sss),"Автомобиль ID %d успешно удалён с сервера",carids); SCM(playerid,-1,sss); DestroyVehicle(cars); new iniOpen = ini_openFile("cars.cfg"); ini_setInteger(iniOpen, "AllCars", AllCars); ini_closeFile(iniOpen); } } return 1; } Инструкция для новичков cars/%d.ini это путь к папке,в которой находятся файлы авто После редактирования должно быть примерно так vehicles/%d.ini (vehicles - название папки, %d.ini не трогаем) cars.cfg - конфиг файл,лежащий в папке scriptfiles,в нём записана всего одна строчка - AllCars = a (a - любое число больше нуля) Он может называться по другому,для редактирования естественно меняем в коде название файла "cars.cfg" на ваше Команду закинуть в OnPlayerCommandText Автор: ReLogMan
  20. Привет! Создаём саму команду Автор: MADDD if(strcmp(cmd, "/tehpass", true) == 0) { if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GRAD2, "Ты должен быть автомобиле."); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "[Подсказка]: /tehpass [id]"); giveplayerid = ReturnUser(tmp); if(!IsPlayerConnected(giveplayerid)) return NoPlayerConnect; if(giveplayerid == INVALID_PLAYER_ID) return NetotID; if(!ProxDetectorS(8.0, playerid, giveplayerid)) return SendClientMessage(playerid, COLOR_GRAD2, "Игрок находится не рядом с вами."); new carid = GetPlayerVehicleID(playerid), str[128], sctring[238], stringacc[64]; format(str,sizeof(str),"{33CCFF}Зарегестрировано на: {ffffff}%s\n",CarInfo[GetRealID(carid)][cOwner]); strcat(sctring,str); format(str,sizeof(str),"{33CCFF}Марка транспорта: {ffffff}%s\n",VehiclesName[CarInfo[GetRealID(carid)][cMod]-400]); strcat(sctring,str); format(str,sizeof(str),"{33CCFF}Гос. рег. знак: {ffffff}%s\n",CarInfo[GetRealID(carid)][cNumber]); strcat(sctring,str); format(stringacc,sizeof(stringacc),"{33CCFF}ПТС Гражданина: {ffffff}%s",sendername); ShowPlayerDialog(giveplayerid,4567,DIALOG_STYLE_MSGBOX,stringacc,sctring,"Закрыть",""); format(str, sizeof(str), "%s показал ПТС игроку %s.", sendername, giveplayer); ProxDetector(30.0, playerid, str, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); return 1; } Ко всем #define добавить: #define NetotID SendClientMessage(playerid,COLOR_GRAD2, "Неверый ID игрока.") #define NoPlayerConnect SendClientMessage(playerid,COLOR_GRAD2, "Этот игрок не подключен к серверу.")
  21. Как всегда привет! Вот вам команда для тестирования ПДД в автошколе Создаём команду //Тестирование ПДД============================================================== if(strcmp(cmdtext, "/teststart",true)==0) { if(IsPlayerConnected(playerid)) { if(PlayerToPoint(3.0, playerid,2144.6,-2196.5,23.2)) //Место где можно сдать на права { if(PlayerInfo[playerid][pLevel] > 0) { if(PlayerInfo[playerid][pCarLicB] { if(pTestPDD[playerid] == 0) { if(PlayerInfo[playerid][pMoney] >= 600) { GameTextForPlayer(playerid, "~r~…®C¦PYK¦A„",5000,3); TogglePlayerControllable(playerid,0); IO1(playerid); SetTimerEx("IO2", 5000, 0, "d", playerid); SetTimerEx("IO3", 5000, 0, "d", playerid); SetTimerEx("IO4", 5000, 0, "d", playerid); SetTimerEx("IO5", 5000, 0, "d", playerid); SetTimerEx("IO6", 5000, 0, "d", playerid); } else { SendClientMessage(playerid, COLOR_GREY, "[Инструктор]: Вам не хватает денег, чтобы пройти тест!"); return 1; } } else { SendClientMessage(playerid, COLOR_GREY, "[Инструктор]: Вы уже находитесь на испытании!"); return 1; } } else { SendClientMessage(playerid, COLOR_GREY, "[Инструктор]: У вас уже есть водительские права!"); return 1; } } else { SendClientMessage(playerid, COLOR_GREY, "[Сервер]: 1 и более лвл должен быть."); return 1; } } } return 1; } //============================================================================== Готово! Автор: Я
  22. Привет ребята форума cr-mp.ru! Как обычно из названия всё должно быть понятно В public OnPlayerCommandText if(strcmp(cmd,"/color",true)==0)// { if(!PlayerInfo[playerid][pAdmin] == 0) { SetPlayerColor(playerid,0x68000088); //цвет можно изменить на свой ищите цвета на сайте cr-mp.ru } else { SendClientMessage(playerid,COLOR_LIGHTRED,"Вы не являетесь администратором!"); } return 1; } /color - сам команда pAdmin == 0 - проверка на администратора SetPlayerColor - собственно выдача цвета на ник Автор: Я
  23. Привет ребята! Суть команды в том, что она выбивает всех игроков с одинаковым IP-адресом не важно онлайн игрок или же оффлайн Добавляем ко всем new: new pgetip[1500] // значение можете увеличить так-как если больше 4 аккаунтов, текст пропадает Далее сама команда (zcmd + sscanf): CMD:pgetip(playerid, params[]) { if(PlayerInfo[playerid][pAdmin] >= 3) // ранг администратора { new username[MAX_PLAYER_NAME], playerip[16], pgetips[256], TOTALPGETIP = 0, level, money, info2[256]; if(sscanf(params,"s[16]", params[0])) return SCM(playerid, COLOR_WHITE, "Введите: /pgetip [ip]"); format(query, sizeof(query), "SELECT Name, Ip, Level, Money FROM "TABLE_ACCOUNT" WHERE Ip = '%s'", params[0]); // тут меняйте все под себя mysql_query(query); mysql_store_result(); format(info2, sizeof(info2), "{FFFFFF}Совпадение аккаунтов по IP-адресу: {C1C1C1}%s{FFFFFF}\n\n\ {5891C6}№\t\tИмя\t\t\tIP\t\t\tУровень\t\tДеньги\n\n{FFFFFF}", params[0]); strcat(pgetips, info2); if(!mysql_num_rows()) return SCM(playerid, COLOR_WHITE,"Ошибка: Совпадений не найдено."); // если нету данных по ip-адресу for(new f; f != mysql_num_rows(); f++) { mysql_fetch_row(query); sscanf(query, "ps[32]s[16]ii", username, playerip, level, money); TOTALPGETIP++; format(pgetip, sizeof(pgetip), "%i\t\t%s\t\t%s\t\t%i\t\t\t%i$\n\n", TOTALPGETIP, username, playerip, level, money); strcat(pgetips, pgetip); ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Совпадение аккаунтов по IP-адресу", pgetips, "Закрыть", ""); } mysql_free_result(); } return true; } Скриншёты Автор:Archive
  24. Привет друзья! Держите чат для Администрации В public OnPlayerCommandText: if(strcmp(cmd, "/a", true) == 0 && Player[playerid][pAdmin] == 1) { if(Player[playerid][pAdmin] >= 1) { GetPlayerName( playerid , string , sizeof( string ) ) ; format( string , sizeof( string ) , "Администратор %s: %s" , string , text[ 1 ] ) ; SendAdminMessage( COLOR_RED , string ) ; } if(Player[playerid][pAdmin] == 0) { SendClientMessage(playerid,-1,"Вы не являетесь Администратором"); } return 0; } Автор : Я
  25. Добрый день Начнём! Нужно создать команду if(strcmp(cmd, "/time", true) == 0) { new mtext[20]; new year, month,day; getdate(year, month, day); if(month == 1) { mtext = "Января"; } else if(month == 2) { mtext = "Февраля"; } else if(month == 3) { mtext = "Марта"; } else if(month == 4) { mtext = "Апреля"; } else if(month == 5) { mtext = "Мая"; } else if(month == 6) { mtext = "Июня"; } else if(month == 7) { mtext = "Июля"; } else if(month == 8) { mtext = "Августа"; } else if(month == 9) { mtext = "Сентября"; } else if(month == 10) { mtext = "Октября"; } else if(month == 11) { mtext = "Ноября"; } else if(month == 12) { mtext = "Декабря"; } new hour,minuite,second; gettime(hour,minuite,second); FixHour(hour); hour = shifthour; if (minuite { format(string, sizeof(string), "{e49b0f}Получение текущего времени и даты\n{faeedd}_____________________________________\n\n{faeedd}Сегодняшняя дата:\t{3caa3c}%d %s 2013 год\n{faeedd}Текущее время:\t{007fff}%d:%d\n{faeedd}_____________________________________", day, mtext, hour, minuite); ShowPlayerDialog(playerid,8888, DIALOG_STYLE_MSGBOX, " ", string, "Закрыть", ""); } if (PlayerInfo[playerid][pJailTime] > 0) { format(string, sizeof(string), "{e49b0f}Получение текущего времени и даты\n{faeedd}_____________________________________\n\n{faeedd}Сегодняшняя дата:\t{3caa3c}%d %s 2013 год\n{faeedd}Текущее время:\t{007fff}%d:%d\n{faeedd}Осталось сидеть:\t{ea7500}%d секунд\n{faeedd}_____________________________________", day, mtext, hour, minuite,PlayerInfo[playerid][pJailTime]-10); ShowPlayerDialog(playerid,8888, DIALOG_STYLE_MSGBOX, " ", string, "Закрыть", ""); } else { format(string, sizeof(string), "{e49b0f}Получение текущего времени и даты\n{faeedd}_____________________________________\n\n{faeedd}Сегодняшняя дата:\t{3caa3c}%d %s 2013 год\n{faeedd}Текущее время:\t{007fff}%d:%d\n{faeedd}_____________________________________", day, mtext, hour, minuite); ShowPlayerDialog(playerid,8888, DIALOG_STYLE_MSGBOX, " ", string, "Закрыть", ""); } ApplyAnimation(playerid,"COP_AMBIENT","Coplook_watch",4.1,0,0,0,0,0,1); format(string, sizeof(string), "%s посмотрел(а) на свои часы", sendername); ProxDetector(25.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); return true; } Готово! Скриншёты Автор : MotoSport
×

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

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