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

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

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

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

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

Тип контента


Форумы

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

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

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


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

  • Начало

    Конец


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

  • Начало

    Конец


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

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

  1. Всем привет, думаю многие знают, что на некоторых проектах в мод-паки входит своя карта, отображаемая на радаре и в меню (ESC > Карта) с маппингом сервера, но немногие знают, как сделать себе такую. В этой теме я расскажу, как сделать собственный рендер карты со своим маппингом сервера. Для начала несколько примечаний: Для рендера с маппингом сервера потребуется перевести его в IPL формат, если ваша карта уже есть в таком формате - хорошо, если нет - мы научимся конвертировать её в этой теме. Рекомендуется, чтобы удаляемые объекты (RemoveBuildingForPlayer), либо были в небольшом количестве, либо были незаметными, потому что удалить их на рендере невозможно. Рендер можно делать с модификацией на текстуры игры (весна, осень, зима), получается весьма красиво. Для рендера мы будем использовать программу MapViewer, которую можно найти в сети, но рекомендую использовать мою версию с некоторыми исправлениями в её скриптах. Карту, которую мы получим в итоге, можно в пару кликов перевести либо в одно изображение, либо разделить по TXD файлам для мод-пака с помощью программы XRadarEditor. Для создания рендера я рекомендую использовать полностью чистую копию GTA Criminal Russia (как её получить, можно почитать здесь). На итоговом рендере не будет воды, её можно дорисовать через фотошоп. Переводим карту в IPL формат: Скачиваем следующий скрипт. Используем любой сервер с установленным на нем sscanf 2.8.2 или выше. Перекинем ipl.pwn в filterscripts и скомпилируем. В файл scriptfiles/iplc/input.txt записываем код маппинга строго в формате CreateObjeсt без комментариев и лишних строк (пустых в том числе). Запускаем сервер и вводим в консоль команду "loadfs ipl". Если всё будет отлично - в scriptfiles/iplc/output.txt будет записан маппинг в формате IPL. Подготовка игры для рендера карты: Как я и сказал, рекомендуется чистая версия GTA Criminal Russia (желательно копией, дабы в будущем можно было легко делать рендер и не засорять рабочую игру). Создаем в директории игры папку "map", копируем в созданную папку файлы "mp.img" и "mp_col.img" из папки "multiplayer_c/models" (оригинальной игры с мультиплеером), скачиваем этот файл и перекидываем его в папку "map" под названием "mp.ide". Копируем IPL файл карты (полученный ранее в output.txt) в папку "map" под названием "map.ipl". Если у вас есть мод-пак со своими объектами, то переместите всё в ту же папку IDE и IMG файл мод-пака, допустим под названиями "modpack.ide" и "modpack.img" (если есть IPL файл, то добавьте его содержимое к map.ipl). Откройте файл %ПапкаИгры%/data/gta.dat и замените все его содержимое на:
  2. Простенькая команда на починку авто. CMD:fixcar(playerid) { if(player[playerid][Admin] < 2) return SendClientMessage(playerid,-1,"{ff0000}[x]: {ffffff}Нет доступа!"); //Пишется игроку если у него нету 2 лвла админки if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "[x]: {ffffff} Вы не в т/с!"); //Если человек не в т.с ему пишится это RepairVehicle(GetPlayerVehicleID(playerid));// Функция отвечающая за починку т/c SendClientMessage(playerid, -1, "Автомобиль успешно починен!");// при починки авто пишется return 1; // конец кода }
  3. Всем привет. Многие думали сделать систему репутации администрации либо агентов поддержки Предостовляю вам свой вариант. Начнем с команды для ответа CMD:ans(playerid,params[]) { if(antiflood[playerid] > 0) return SendClientMessage(playerid, COLOR_WARNING,"Не флуди!"); antiflood[playerid]++; if(PLAYER_DATA[playerid][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WARNING,"Вы не авторизованы на сервере!");// тту начинаются обычние проверки if(PLAYER_DATA[playerid][data_SUPPORTLVL] < 1) return true; if(sscanf(params,"us[100]",params[0],params[1])) return SendClientMessage(playerid,COLOR_WARNING,"Используйте: /ans [ид] [текст]"); if(!IsPlayerConnected(params[0]))return SendClientMessage(playerid,COLOR_WARNING,"Данного ID нет на сервере!"); if(PLAYER_DATA[params[0]][data_LOGGED] == false)return SendClientMessage(playerid,COLOR_WARNING,"Данный игрок не прошел авторизацию!"); NotReklama(playerid, params[1]); PLAYER_DATA[playerid][data_THREP] += 1;// выдаем в БД для подальшой проверке new query[100], string[300], string1[300], str[300]; mysql_format(dbHandle,query,sizeof(query),"UPDATE `accounts` SET `threp` = '%d' WHERE `name` = '%e'",PLAYER_DATA[playerid][data_THREP],PLAYER_DATA[playerid][data_NAME]);//запрос в БД для изменение значение mysql_function_query(dbHandle,query,false,"",""); format(string, sizeof(string), "Агент поддержки #%d ответил %s[%d]: {ffa141}%s", PLAYER_DATA[playerid][data_SUPPORTID],PLAYER_DATA[params[0]][data_NAME],params[0],params[1]);//в админ чат чтобы небыло накрутки репутации и небыло слива format(string1, sizeof(string1), "Агент поддержки #%d ответил %s[%d]: {ff5204}%s", PLAYER_DATA[playerid][data_SUPPORTID],PLAYER_DATA[params[0]][data_NAME],params[0],params[1]);//в хелпер чат чтобы другие видели что вы ответили format(str, sizeof(str), "Агент #%d ответил вам: %s", PLAYER_DATA[playerid][data_SUPPORTID],params[1]);// ответ на вопрос SendClientMessage(params[0], 0xFFCD00AA, str); SendAdminMessage(0xff0001FF, string); SendSupportMessage(0xFF5204FF, string1); return true; } продолжим с команды для благодарности CMD:thanks(playerid,params[]) { if(PLAYER_DATA[playerid][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WARNING,"Вы не авторизованы на сервере!");//тут также обычные проверки if(sscanf(params,"ud",params[0])) return SendClientMessage(playerid,COLOR_WARNING,"Используйте: /th(/thanks [ID]"); if(PLAYER_DATA[params[0]][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WARNING,"Данного ID нет на сервере!"); if(PLAYER_DATA[params[0]][data_SUPPORTLVL] == 0) return SendClientMessage(playerid,COLOR_WARNING,"Данный игрок не агент поддержки!"); if(PLAYER_DATA[params[0]][data_THREP] == 0) return SendClientMessage(playerid,COLOR_WARNING,"Вы уже благодарили данного агента поддержки!");//если в БД будет 0 значит благодарность уже начислялась и доступа к кмд не будет, если в БД будет 1 то можно все ище благодарить PLAYER_DATA[playerid][data_THREP] += -1;// после использование данной команды в бд снимается проверка была ли благодарность...... PLAYER_DATA[params[0]][data_HREP] += 1;// при использование команды добавляем +1 к репутации new query[100],str[145]; mysql_format(dbHandle,query,sizeof(query),"UPDATE `accounts` SET `threp` = '%d' WHERE `name` = '%e'",PLAYER_DATA[playerid][data_THREP],PLAYER_DATA[playerid][data_NAME]); mysql_function_query(dbHandle,query,false,"",""); format(str,sizeof(str),"Спасибо за благодарность");//ответ игроку за то что он отблагодарил хелпера SendClientMessage(playerid,0xCC6633FF,str); format(str,sizeof(str),"Игрок %s[%d] поблагодарил %s[%d] за помощь ( Репутация: %d )",PLAYER_DATA[playerid][data_NAME],playerid,PLAYER_DATA[params[0]][data_NAME],params[0],PLAYER_DATA[playerid][data_HREP]);//в хелпер чат, чтобы было видно какой игрок кому выдал благодарность SendSupportMessage(0xFF5204FF, str); return true; } data_TIMEHREP, data_THREP, data_HREP, тепер создаем таймер, дабы небыло такого что игроку ответили и он копил копил благодарности а потом одному агенту все и отдал if(PLAYER_DATA[playerid][data_TIMEHREP] == 105) { PLAYER_DATA[playerid][data_TIMEHREP] = 0; if(strfind(PLAYER_DATA[playerid][data_CHAT_TEXT], "", true) == -1) strmid(PLAYER_DATA[playerid][data_CHAT_TEXT], "", 0, 128, 128); if(PLAYER_DATA[playerid][data_THREP] >= 1) { PLAYER_DATA[playerid][data_THREP] -= 1; if(PLAYER_DATA[playerid][data_TIMEHREP] == 100) { PLAYER_DATA[playerid][data_TIMEHREP] = 100; SendClientMessage(playerid,0x82FA58FF,"Не забудьте отблагодарить агента поддержки который смог вам помоч. /thanks(/th)"); } } }
  4. Данная защита поможет от таких программ, как ArtMoney/Sobeit и т.д. Куда-нибудь в начало мода, желательно после дефайнов: stock SPD(playerid, dialogid, style, caption[], info[], button1[], button2[]) { ShowPlayerDialog(playerid, dialogid, style, caption, info, button1, button2); SetPVarInt(playerid, "USEDIALOGID", dialogid); return 1; } #define ShowPlayerDialog SPD В public OnDialogResponse после "{" вставляем: if(GetPVarInt(playerid,"USEDIALOGID") != dialogid)return Ban(playerid); Теперь, если кто-то попытается подменить диалоги, то его автоматически будет банить система, по-своему желанию вы можете сделать записи в логи, дабы знать этого взломщика. Автор: Vyacheslav
  5. Система заключается в том, что ни один посланный репорт не останется незамеченным. Пока администраторы/хелперы не ответят, он не пропадет. Ко всем new: enum RepGB { Reptex[130],// Текст который пишет игрок, не превышает 130 символов. RepTime, }; new RepInfo[100][RepGB]; // Максимум послать можно 100 репортов. Ко всем командам ( если у вас уже есть команда репорта - удалите её ) : CMD:report(playerid,params[]) { if(PLAYER_DATA[playerid][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WARNING,"Вы не авторизованы на сервере!"); ReportDialog(playerid); return true; } CMD:reports(playerid) { if(PLAYER_DATA[playerid][data_ADMLVL] == 0) return SCM(playerid, -1, "Команда доступна только для администрации!"); new str[200], string[1500], null = 0; foreach(new i:Player) { if(GetPVarInt(i, "RepUn") > 0) { null++; format(str,sizeof(str),"%s\n{FFFFFF}%i. %s[%d] | Жалоба: %s [%s]",string, null,PLAYER_DATA[i][data_NAME],i,RepInfo[i][Reptex], date("%hh:%ii:%ss", RepInfo[i][RepTime])); strcat(string,str); } } strcat(string, "\n\n{FFCC00}Ответить на жалобу: /pm [id] [ответ]"); if(null == 0) return SendClientMessage(playerid, 0xAA3333AA,"Список репортов пуст"); return ShowPlayerDialogFix(playerid, 9692, 0, "Репорт",string, "Обновить", "Закрыть"); } Ко всем stock`ам ( в конец / середину мода ) : stock ReportDialog(playerid) { new dtext[700]; strcat(dtext, "{FFFFFF}Вы собираетесь написать Администрации сервера\n"); strcat(dtext, "{FFFFFF}Перед тем как отправить сообщение\n"); strcat(dtext, "{FFFFFF}убедитесь, что один из пунктов помощи не дал Вам ответа на Ваш вопрос\n\n"); strcat(dtext, "{FF3300}Запрещено:\n"); strcat(dtext, "{FFFFFF}- флуд, сквернословие, оффтоп\n"); strcat(dtext, "{FFFFFF}- Выпрашивание игровых ценностей ('дать денег', 'дать лидерку', 'дать права')\n"); strcat(dtext, "{FFFFFF}- ложные сообщения о нарушении\n\n"); strcat(dtext, "{FF3300}За нарушение правил Администратор может:\n"); strcat(dtext, "{FFFFFF}- предупредить (warn)\n"); strcat(dtext, "{FFFFFF}- отключить от сервера (kick)\n"); strcat(dtext, "{FFFFFF}- лишить возможности писать (mute)\n"); strcat(dtext, "{FFFFFF}- заблокировать (ban)\n\n"); strcat(dtext, "{FFFFFF}Данные правила установлены для всех игроков {339966}rglrp.tk"); ShowPlayerDialogFix(playerid,dialog_REPORT,DIALOG_STYLE_INPUT,"{FFCC00}Репорт",dtext,"Отправить","Назад"); return true; } Ко всем dialog`ам : case dialog_REPORT: { if(!response) return true; if(response) { if(strlen(inputtext) < 1 || strlen(inputtext) > 100) return SendClientMessage(playerid,COLOR_WARNING,"Не менее 1 и не более 100 символов!"),ReportDialog(playerid); if(GetPVarInt(playerid,"RepUn") > 0) return SendClientMessage(playerid,0xAA3333AA,"Ошибка: Ваша прошлая жалоба ещё не рассмотрена"); SetPVarInt(playerid,"RepUn",1); strmid(RepInfo[playerid][Reptex], inputtext,0,strlen(inputtext),130); RepInfo[playerid][RepTime] = gettime(); SendAdminMessage(0x33FF66FF, "{FFCC00}Поступила новая жалоба от игрока! Рассмотреть жалобы: /reports"); SendClientMessage(playerid,0x3399feFF, "Ваша жалоба отправлена на рассмотрение!"); } } Команда для ответа на репорт | ( /pm ) : CMD:pm(playerid,params[]) { //ставьте свою переменную админки if(PLAYER_DATA[playerid][data_ADMLVL] < 1) return true; if(sscanf(params,"us[100]",params[0],params[1])) return SendClientMessage(playerid,COLOR_WARNING,"Используйте: /pm [ид] [текст]"); if(!IsPlayerConnected(params[0]))return SendClientMessage(playerid,COLOR_WARNING,"Данного ID нет на сервере!"); new string[300]; format(string, sizeof(string), "[Ответ] %s[%d] игроку %s[%d]: {ffffff}%s", PLAYER_DATA[playerid][data_NAME],playerid,PLAYER_DATA[params[0]][data_NAME],params[0],params[1]); SendAdminMessage(0xffa141FF, string); format(string, sizeof(string), "Администратор %s[%d] ответил вам: {ffffff}%s", PLAYER_DATA[playerid][data_NAME],playerid,params[1]); SendClientMessage(params[0], 0xffa141FF, string); if(strlen(RepInfo[params[0]][Reptex])) { format(string, sizeof(string), "На вашу жалобу: {FFFFFF}%s", RepInfo[params[0]][Reptex]); SendClientMessage(params[0], 0xffa141FF, string); } strmid(RepInfo[playerid][Reptex], "",0,0,0); DeletePVar(params[0], "RepUn"); return true; } Найдено на просторах интернета, оформление моё. Автор : неизвестен. P.S: Проблемы с табуляцией на сайте, надо выровнять.
  6. #meow

    TextDraw - Recon

    Скриншот: [spoiler=Open] Код: [spoiler=Open] new Text:RECON[34]; RECON[0] = TextDrawCreate(125.500000, 119.099990, "usebox"); TextDrawLetterSize(RECON[0], 0.000000, 22.852458); TextDrawTextSize(RECON[0], 10.000000, 0.000000); TextDrawAlignment(RECON[0], 1); TextDrawColor(RECON[0], 0); TextDrawUseBox(RECON[0], true); TextDrawBoxColor(RECON[0], -1523963137); TextDrawSetShadow(RECON[0], 0); TextDrawSetOutline(RECON[0], 0); TextDrawFont(RECON[0], 0); RECON[1] = TextDrawCreate(123.500000, 120.966674, "usebox"); TextDrawLetterSize(RECON[1], 0.000000, 22.387649); TextDrawTextSize(RECON[1], 11.500000, 0.000000); TextDrawAlignment(RECON[1], 1); TextDrawColor(RECON[1], 0); TextDrawUseBox(RECON[1], true); TextDrawBoxColor(RECON[1], -5963521); TextDrawSetShadow(RECON[1], 0); TextDrawSetOutline(RECON[1], 0); TextDrawFont(RECON[1], 0); RECON[2] = TextDrawCreate(121.500000, 122.833335, "usebox"); TextDrawLetterSize(RECON[2], 0.000000, 1.464815); TextDrawTextSize(RECON[2], 13.000000, 0.000000); TextDrawAlignment(RECON[2], 1); TextDrawColor(RECON[2], 0); TextDrawUseBox(RECON[2], true); TextDrawBoxColor(RECON[2], -2147483393); TextDrawSetShadow(RECON[2], 0); TextDrawSetOutline(RECON[2], 0); TextDrawFont(RECON[2], 0); RECON[3] = TextDrawCreate(121.500000, 142.744445, "usebox"); TextDrawLetterSize(RECON[3], 0.000000, 3.935802); TextDrawTextSize(RECON[3], 13.000000, 0.000000); TextDrawAlignment(RECON[3], 1); TextDrawColor(RECON[3], 0); TextDrawUseBox(RECON[3], true); TextDrawBoxColor(RECON[3], -2147483393); TextDrawSetShadow(RECON[3], 0); TextDrawSetOutline(RECON[3], 0); TextDrawFont(RECON[3], 0); RECON[4] = TextDrawCreate(46.500000, 138.755554, "NAME:"); TextDrawLetterSize(RECON[4], 0.316500, 1.506666); TextDrawAlignment(RECON[4], 1); TextDrawColor(RECON[4], -1); TextDrawSetShadow(RECON[4], 1); TextDrawSetOutline(RECON[4], 0); TextDrawBackgroundColor(RECON[4], 51); TextDrawFont(RECON[4], 2); TextDrawSetProportional(RECON[4], 1); RECON[5] = TextDrawCreate(23.000000, 121.955520, "ADMIN-PANEL"); TextDrawLetterSize(RECON[5], 0.333999, 1.301332); TextDrawAlignment(RECON[5], 1); TextDrawColor(RECON[5], -1); TextDrawSetShadow(RECON[5], 1); TextDrawSetOutline(RECON[5], 0); TextDrawBackgroundColor(RECON[5], 51); TextDrawFont(RECON[], 2); TextDrawSetProportional(RECON[], 1); RECON[6] = TextDrawCreate(22.000000, 151.199966, "Ricardo_Carmone"); TextDrawLetterSize(RECON[6], 0.256500, 1.332443); TextDrawAlignment(RECON[6], 1); TextDrawColor(RECON[6], 16777215); TextDrawSetShadow(RECON[6], 1); TextDrawSetOutline(RECON[6], 0); TextDrawBackgroundColor(RECON[], 51); TextDrawFont(RECON[6], 2); TextDrawSetProportional(RECON[6], 1); RECON[7] = TextDrawCreate(46.000000, 161.155563, "ID:"); TextDrawLetterSize(RECON[7], 0.259499, 1.562667); TextDrawAlignment(RECON[7], 1); TextDrawColor(RECON[7], -1); TextDrawSetShadow(RECON[7], 1); TextDrawSetOutline(RECON[7], 0); TextDrawBackgroundColor(RECON[], 51); TextDrawFont(RECON[7], 2); TextDrawSetProportional(RECON[7], 1); RECON[8] = TextDrawCreate(60.000000, 161.533340, "444"); TextDrawLetterSize(RECON[8], 0.276499, 1.519111); TextDrawAlignment(RECON[8], 1); TextDrawColor(RECON[8], -1); TextDrawSetShadow(RECON[8], 1); TextDrawSetOutline(RECON[8], 0); TextDrawBackgroundColor(RECON[8], 51); TextDrawFont(RECON[8], 2); TextDrawSetProportional(RECON[8], 1); RECON[9] = TextDrawCreate(121.500000, 184.433334, "usebox"); TextDrawLetterSize(RECON[9], 0.000000, 3.466665); TextDrawTextSize(RECON[9], 13.000000, 0.000000); TextDrawAlignment(RECON[9], 1); TextDrawColor(RECON[9], 0); TextDrawUseBox(RECON[9], true); TextDrawBoxColor(RECON[9], -2147483393); TextDrawSetShadow(RECON[9], 0); TextDrawSetOutline(RECON[9], 0); TextDrawFont(RECON[9], 0); RECON[10] = TextDrawCreate(16.000000, 181.066650, "HP:"); TextDrawLetterSize(RECON[10], 0.312500, 1.456888); TextDrawAlignment(RECON[10], 1); TextDrawColor(RECON[10], -1); TextDrawSetShadow(RECON[10], 1); TextDrawSetOutline(RECON[10], 0); TextDrawBackgroundColor(RECON[], 51); TextDrawFont(RECON[10], 2); TextDrawSetProportional(RECON[10], 1); RECON[11] = TextDrawCreate(15.500000, 192.022216, "ARM:"); TextDrawLetterSize(RECON[11], 0.312500, 1.456888); TextDrawAlignment(RECON[11], 1); TextDrawColor(RECON[11], -1); TextDrawSetShadow(RECON[11], 1); TextDrawSetOutline(RECON[11], 0); TextDrawBackgroundColor(RECON[11], 51); TextDrawFont(RECON[11], 2); TextDrawSetProportional(RECON[11], 1); RECON[12] = TextDrawCreate(36.000000, 181.822204, "100"); TextDrawLetterSize(RECON[12], 0.292500, 1.295110); TextDrawAlignment(RECON[12], 1); TextDrawColor(RECON[12], 16777215); TextDrawSetShadow(RECON[12], 1); TextDrawSetOutline(RECON[12], 0); TextDrawBackgroundColor(RECON[12], 51); TextDrawFont(RECON[12], 2); TextDrawSetProportional(RECON[12], 1); RECON[13] = TextDrawCreate(45.000000, 193.399993, "100"); TextDrawLetterSize(RECON[13], 0.292500, 1.295110); TextDrawAlignment(RECON[13], 1); TextDrawColor(RECON[13], 16777215); TextDrawSetShadow(RECON[13], 1); TextDrawSetOutline(RECON[13], 0); TextDrawBackgroundColor(RECON[13], 51); TextDrawFont(RECON[13], 2); TextDrawSetProportional(RECON[13], 1); RECON[14] = TextDrawCreate(16.500000, 202.977783, "CAR:"); TextDrawLetterSize(RECON[14], 0.319499, 1.456888); TextDrawAlignment(RECON[14], 1); TextDrawColor(RECON[14], -1); TextDrawSetShadow(RECON[14], 1); TextDrawSetOutline(RECON[14], 0); TextDrawBackgroundColor(RECON[14], 51); TextDrawFont(RECON[14], 2); TextDrawSetProportional(RECON[14], 1); RECON[15] = TextDrawCreate(45.500000, 204.600006, "1000"); TextDrawLetterSize(RECON[15], 0.292500, 1.295110); TextDrawAlignment(RECON[15], 1); TextDrawColor(RECON[15], 16777215); TextDrawSetShadow(RECON[15], 1); TextDrawSetOutline(RECON[15], 0); TextDrawBackgroundColor(RECON[15], 51); TextDrawFont(RECON[15], 2); TextDrawSetProportional(RECON[15], 1); RECON[16] = TextDrawCreate(67.500000, 222.388885, "usebox"); TextDrawLetterSize(RECON[16], 0.000000, 1.500000); TextDrawTextSize(RECON[16], 13.000000, 0.000000); TextDrawAlignment(RECON[16], 1); TextDrawColor(RECON[16], 0); TextDrawUseBox(RECON[16], true); TextDrawBoxColor(RECON[16], -2147483393); TextDrawSetShadow(RECON[16], 0); TextDrawSetOutline(RECON[16], 0); TextDrawFont(RECON[16], 0); RECON[17] = TextDrawCreate(121.500000, 222.144439, "usebox"); TextDrawLetterSize(RECON[17], 0.000000, 1.550000); TextDrawTextSize(RECON[17], 65.000000, 0.000000); TextDrawAlignment(RECON[17], 1); TextDrawColor(RECON[17], 0); TextDrawUseBox(RECON[17], true); TextDrawBoxColor(RECON[17], -2147483393); TextDrawSetShadow(RECON[17], 0); TextDrawSetOutline(RECON[17], 0); TextDrawFont(RECON[17], 0); RECON[18] = TextDrawCreate(22.500000, 221.511108, "KICK"); TextDrawLetterSize(RECON[18], 0.402499, 1.450667); TextDrawAlignment(RECON[18], 1); TextDrawColor(RECON[18], -1); TextDrawSetShadow(RECON[18], 1); TextDrawSetOutline(RECON[18], 0); TextDrawBackgroundColor(RECON[18], 51); TextDrawFont(RECON[18], 2); TextDrawSetProportional(RECON[18], 1); TextDrawSetSelectable(RECON[18], true); RECON[19] = TextDrawCreate(71.500000, 221.266662, "SKICK"); TextDrawLetterSize(RECON[19], 0.404999, 1.500445); TextDrawAlignment(RECON[19], 1); TextDrawColor(RECON[19], -1); TextDrawSetShadow(RECON[19], 1); TextDrawSetOutline(RECON[19], 0); TextDrawBackgroundColor(RECON[19], 51); TextDrawFont(RECON[19], 2); TextDrawSetProportional(RECON[19], 1); TextDrawSetSelectable(RECON[19], true); RECON[20] = TextDrawCreate(67.500000, 243.055572, "usebox"); TextDrawLetterSize(RECON[20], 0.000000, 1.550000); TextDrawTextSize(RECON[20], 13.000000, 0.000000); TextDrawAlignment(RECON[20], 1); TextDrawColor(RECON[20], 0); TextDrawUseBox(RECON[20], true); TextDrawBoxColor(RECON[20], -2147483393); TextDrawSetShadow(RECON[20], 0); TextDrawSetOutline(RECON[20], 0); TextDrawFont(RECON[20], 0); RECON[21] = TextDrawCreate(67.500000, 263.966705, "usebox"); TextDrawLetterSize(RECON[21], 0.000000, 1.800000); TextDrawTextSize(RECON[21], 13.000000, 0.000000); TextDrawAlignment(RECON[21], 1); TextDrawColor(RECON[21], 0); TextDrawUseBox(RECON[21], true); TextDrawBoxColor(RECON[21], -2147483393); TextDrawSetShadow(RECON[21], 0); TextDrawSetOutline(RECON[21], 0); TextDrawFont(RECON[21], 0); RECON[22] = TextDrawCreate(67.500000, 287.366729, "usebox"); TextDrawLetterSize(RECON[22], 0.000000, 1.400000); TextDrawTextSize(RECON[22], 13.000000, 0.000000); TextDrawAlignment(RECON[22], 1); TextDrawColor(RECON[22], 0); TextDrawUseBox(RECON[22], true); TextDrawBoxColor(RECON[22], -2147483393); TextDrawSetShadow(RECON[22], 0); TextDrawSetOutline(RECON[22], 0); TextDrawFont(RECON[22], 0); RECON[23] = TextDrawCreate(22.500000, 242.177795, "BAN"); TextDrawLetterSize(RECON[23], 0.427499, 1.494223); TextDrawAlignment(RECON[23], 1); TextDrawColor(RECON[23], -1); TextDrawSetShadow(RECON[23], 1); TextDrawSetOutline(RECON[23], 0); TextDrawBackgroundColor(RECON[23], 51); TextDrawFont(RECON[23], 2); TextDrawSetProportional(RECON[23], 1); TextDrawSetSelectable(RECON[23], true); RECON[24] = TextDrawCreate(121.500000, 242.811126, "usebox"); TextDrawLetterSize(RECON[24], 0.000000, 1.600000); TextDrawTextSize(RECON[24], 65.000000, 0.000000); TextDrawAlignment(RECON[24], 1); TextDrawColor(RECON[24], 0); TextDrawUseBox(RECON[24], true); TextDrawBoxColor(RECON[24], -2147483393); TextDrawSetShadow(RECON[24], 0); TextDrawSetOutline(RECON[24], 0); TextDrawFont(RECON[24], 0); RECON[25] = TextDrawCreate(121.500000, 264.344482, "usebox"); TextDrawLetterSize(RECON[25], 0.000000, 1.750000); TextDrawTextSize(RECON[25], 65.000000, 0.000000); TextDrawAlignment(RECON[25], 1); TextDrawColor(RECON[25], 0); TextDrawUseBox(RECON[25], true); TextDrawBoxColor(RECON[25], -2147483393); TextDrawSetShadow(RECON[25], 0); TextDrawSetOutline(RECON[25], 0); TextDrawFont(RECON[25], 0); RECON[26] = TextDrawCreate(121.500000, 287.122283, "usebox"); TextDrawLetterSize(RECON[26], 0.000000, 1.450000); TextDrawTextSize(RECON[26], 65.000000, 0.000000); TextDrawAlignment(RECON[26], 1); TextDrawColor(RECON[26], 0); TextDrawUseBox(RECON[26], true); TextDrawBoxColor(RECON[26], -2147483393); TextDrawSetShadow(RECON[26], 0); TextDrawSetOutline(RECON[26], 0); TextDrawFont(RECON[26], 0); RECON[27] = TextDrawCreate(71.000000, 242.555572, "WARN"); TextDrawLetterSize(RECON[27], 0.396499, 1.376001); TextDrawAlignment(RECON[27], 1); TextDrawColor(RECON[27], -1); TextDrawSetShadow(RECON[27], 1); TextDrawSetOutline(RECON[27], 0); TextDrawBackgroundColor(RECON[27], 51); TextDrawFont(RECON[27], 2); TextDrawSetProportional(RECON[27], 1); TextDrawSetSelectable(RECON[27], true); RECON[28] = TextDrawCreate(17.500000, 263.466705, "STATS"); TextDrawLetterSize(RECON[28], 0.343499, 1.699557); TextDrawAlignment(RECON[28], 1); TextDrawColor(RECON[28], -1); TextDrawSetShadow(RECON[28], 1); TextDrawSetOutline(RECON[28], 0); TextDrawBackgroundColor(RECON[28], 51); TextDrawFont(RECON[28], 2); TextDrawSetProportional(RECON[28], 1); TextDrawSetSelectable(RECON[28], true); RECON[29] = TextDrawCreate(82.500000, 262.600036, "GM"); TextDrawLetterSize(RECON[29], 0.343499, 1.699557); TextDrawAlignment(RECON[29], 1); TextDrawColor(RECON[29], -1); TextDrawSetShadow(RECON[29], 1); TextDrawSetOutline(RECON[29], 0); TextDrawBackgroundColor(RECON[29], 51); TextDrawFont(RECON[29], 2); TextDrawSetProportional(RECON[29], 1); TextDrawSetSelectable(RECON[29], true); RECON[30] = TextDrawCreate(26.500000, 282.488952, "<<"); TextDrawLetterSize(RECON[30]0, 0.585500, 2.278221); TextDrawTextSize(RECON[30]0, -8.500000, 17.422224); TextDrawAlignment(RECON[30]0, 1); TextDrawColor(RECON[30]0, -1); TextDrawSetShadow(RECON[30]0, 0); TextDrawSetOutline(RECON[30]0, 1); TextDrawBackgroundColor(RECON[30]0, 51); TextDrawFont(RECON[30]0, 3); TextDrawSetProportional(RECON[30]0, 1); TextDrawSetSelectable(RECON[30]0, true); RECON[31] = TextDrawCreate(82.500000, 282.244506, ">>"); TextDrawLetterSize(RECON[31]1, 0.597000, 2.290666); TextDrawTextSize(RECON[31]1, -8.500000, 17.422224); TextDrawAlignment(RECON[31]1, 1); TextDrawColor(RECON[31]1, -1); TextDrawSetShadow(RECON[31]1, 0); TextDrawSetOutline(RECON[31]1, 1); TextDrawBackgroundColor(RECON[31]1, 51); TextDrawFont(RECON[31]1, 3); TextDrawSetProportional(RECON[31]1, 1); TextDrawSetSelectable(RECON[31]1, true); RECON[32] = TextDrawCreate(121.500000, 307.011108, "usebox"); TextDrawLetterSize(RECON[32]2, 0.000000, 1.550002); TextDrawTextSize(RECON[32]2, 13.000000, 0.000000); TextDrawAlignment(RECON[32]2, 1); TextDrawColor(RECON[]2, 0); TextDrawUseBox(RECON[32]2, true); TextDrawBoxColor(RECON[32]2, -2147483393); TextDrawSetShadow(RECON[32]2, 0); TextDrawSetOutline(RECON[32]2, 0); TextDrawFont(RECON[32]2, 0); RECON[33] = TextDrawCreate(42.000000, 305.511169, "EXIT"); TextDrawLetterSize(RECON[33]3, 0.522999, 1.543999); TextDrawAlignment(RECON[33]3, 1); TextDrawColor(RECON[33]3, -1); TextDrawSetShadow(RECON[33]3, 0); TextDrawSetOutline(RECON[33]3, 1); TextDrawBackgroundColor(RECON[33]3, 51); TextDrawFont(RECON[33]3, 2); TextDrawSetProportional(RECON[33]3, 1); TextDrawSetSelectable(RECON[33]3, true); Автор: ЛЕГЕНД P.S: Пишите что изменить, критикуйте!
  7. Всех приветствую! Сегодня я бы вам хотел рассказать об одном методе шифровки и расшифровки файлов Для данного урока на понадобится Только одна программа RWAnalyze RUS Ну и прямые руки Ну что ж начнем! Шифровка: 1.Открываем RWAnalyze RUS и берем любой файл (TXD or DFF) 2. После чего мы видим данную картину 3. Для шифрования вам нужно создать одинаковую секцию в одном блоке (желательно "Extension") 4. Нажимаем ПКМ по секции и после "Копировать секцию" 5. И все! Можем сохранять Это самый простой способ шифровки TXD и DFF файлов Расшифровка: 1. Открываем RWAnalyze RUS и берем любой файл (TXD or DFF) 2. Проверяем все секции , чтобы в них не повторялись "ячейки" (Проще говоря, чтобы не было двух оранжевых) 3. Делаем противоположное "шифровке" , то есть удаляем одну лишнюю ячейку 4. Сохраняем файл! Надеюсь вам данный туториал поможет , но он ненадежный, т.к его можно расшифровать Автор туториала: Vestorn Специально для форума CR-MP.RU
  8. Доброе времени суток, Пользователи портала CR-MP.RU Сегодня данный урок будет по написанию системы регистрации и авторизации на MYSQL R39-2 Что нам понадобиться.. С начало нам понадобиться сам MYSQL R39-2, данные файлы можете скачать с моей папки, которая находиться на YandexDisk. Ссылка на каталог со всеми версиями MYSQL: Перейти MYSQL Все файлы, которые находятся в архиве закидываем в папку с сервером. P.s если пишите мод с 0! Создаем новый файл, после #include прописываем #include Когда, все подключили нам осталось сделать подключение к базе данных. Создаем переменную, на которую будет подключиться к базе данных. Для меня это будет connects new connects; Когда, создали переменную давайте по пробуем скомпилировать мод, если Вам выдало варнинг о том, что-то переменная данная не используется не волнуйтесь скоро такого варнинга не будет. Переходим в public OnGameModeInit() Прописываем сток, то есть его название для меня это будет CreateMySQLConnection В данном стоке прописываем параметры sqlhost, sqluser, sqldb, sqlpass sqlhost - Хостинг sqluser - Пользователь sqldb - Название Базы Данных sqlpass - Пароль базы данных Данный сток в public OnGameModeInit() должен выглядеть именно вот так: CreateMySQLConnection(sqlhost, sqluser, sqldb, sqlpass); Данный stock можете прописать после переменных, или же в конце мода. Я его пропишу в конце мода, чтобы он мне не мешал stock CreateMySQLConnection(host[], user[], db[], pass[]) { connects = mysql_connect(host, user, db, pass); if(mysql_errno()==0) printf("[MYSQL]: Подключение к базе успешно"); else return printf("[MYSQL]: Подключиться к базе не удалось"); mysql_function_query(connects,"SET NAMES cp1251",false,"",""); mysql_function_query(connects,"set character_set_client=\'cp1251\'",false,"",""); mysql_function_query(connects,"set character_set_results=\'cp1251\'",false,"",""); mysql_function_query(connects,"set collation_connection=\'cp1251_general_ci\'",false,"",""); return 1; } Теперь как создали stock Нам нужно сделать дефайны(define) с помощью, которых будет подключиться к базе данных Данные дефайны(define) прописываем после include! #define sqlhost "localhost" - Хостинг #define sqluser "root" - Пользователь #define sqlpass "" - Пароль базы данных #define sqldb "skrilax_rp" - База данных (Название) Теперь скомпилируем мод, если информационный диалог не выдал никаких Ошибок,Варнингов, то все отлично. Теперь нам нужно убрать загрузку скриптов(filescripts) Мы должны удалить тока это: #if defined FILTERSCRIPT public OnFilterScriptInit() { print("\n--------------------------------------"); print(" Blank Filterscript by your name here"); print("--------------------------------------\n"); return 1; } public OnFilterScriptExit() { return 1; } #else ПОСЛЕ MAIN() { } УДАЛИТЕ #endif Завтра будет продолжение написание "Системы регистрации и авторизации на MYSQL"
  9. NIKITA_BULANOV

    Делаем /anim

    // Когда игрок работает с диалогом // переделываем под свои переменные public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { /*if(GetPVarInt(playerid, "usedialog") != dialogid && player[playerid][pAdmin] != 5) { SCM(playerid, COLOR_WARNING, "Вы кикнуты по подозрению в читерстве! (#0011)"); return Kick(playerid); } if(strfind(inputtext, "%", true) != -1) { new fmt_msg[80]; format(fmt_msg, sizeof fmt_msg, "[A] %s[%i] пытался положить сервер при помощи % s", player[playerid][pName], playerid); SendAdminMessage(1, COLOR_ADM, fmt_msg); SCM(playerid, COLOR_GRAY, "Техническая ошибка #2"); return Kick(playerid); return 0; }*/ string_replace(inputtext, '%', '#') ; switch(dialogid) { case 1134: { if(!response) return 1; switch(listitem) { case 0: SetPlayerSpecialAction (playerid, SPECIAL_ACTION_DANCE1); case 1: SetPlayerSpecialAction (playerid, SPECIAL_ACTION_DANCE2); case 2: SetPlayerSpecialAction (playerid, SPECIAL_ACTION_DANCE3); case 3: SetPlayerSpecialAction (playerid, SPECIAL_ACTION_DANCE4); case 4: GoAnim(playerid,"DEALER","Dealer_idle",4.1,1,0,0,0,0,0); case 5: ApplyAnimation(playerid,"DEALER","Dealer_Deal",4.1,0,0,0,0,0,1); case 6: ApplyAnimation(playerid,"FOOD","Eat_Burger",4.1,0,0,0,0,0,1); case 7: ApplyAnimation(playerid,"PAULNMAC","Piss_in",4.1,0,0,0,0,0,1); case 8: GoAnim(playerid,"PARK","Tai_Chi_Loop",4.1,1,0,0,0,0,0); case 9: GoAnim(playerid,"CRACK","Crckidle1",4.1,1,0,0,0,0,0); case 10: GoAnim(playerid,"CRACK","Crckidle2",4.1,1,0,0,0,0,0); case 11: GoAnim(playerid,"CRACK","Crckidle4",4.1,1,0,0,0,0,0); case 12: ApplyAnimation(playerid,"SWEET","sweet_ass_slap",4.1,0,0,0,0,0,1); case 13: GoAnim(playerid,"SPRAYCAN","spraycan_full",4.1,1,0,0,0,0,0); case 14: GoAnim(playerid,"GRAFFITI","spraycan_fire",4.1,1,0,0,0,0,0); case 15: GoAnim(playerid,"SMOKING","M_smkstnd_loop",4.1,1,0,0,0,0,0); case 16: GoAnim(playerid,"SHOP","ROB_Loop_Threat",4.1,1,0,0,0,0,0); case 17: ApplyAnimation(playerid,"SHOP","ROB_shifty",4.1,0,0,0,0,0,1); case 18: GoAnim(playerid,"PED","handsup",4.1,1,0,0,0,0,0); case 19: GoAnim(playerid,"RYDER","Ryd_Beckon_02",4.1,1,0,0,0,0,0); case 20: ApplyAnimation(playerid,"RIOT","Riot_Angry",4.1,0,0,0,0,0,0); case 21: GoAnim(playerid,"RIOT","Riot_Angry_B",4.1,1,0,0,0,0,0); case 22: GoAnim(playerid,"RIOT","Riot_Chant",4.1,1,1,0,0,0,0); case 23: GoAnim(playerid,"RIOT","Riot_Punches",4.1,1,0,0,0,0,0); case 24: ApplyAnimation(playerid,"PED","fucku",4.1,0,0,0,0,0,1); case 25: ApplyAnimation(playerid,"BAR","dnK_StndM_loop",4.1,0,0,0,0,0,1); case 26: GoAnim(playerid,"BD_FIRE","BD_Panic_03",4.1,1,0,0,0,0,0); case 27: GoAnim(playerid,"BD_FIRE","M_smklean_loop",4.1,1,0,0,0,0,0); case 28: GoAnim(playerid,"BEACH","bather",4.1,1,0,0,0,0,0); case 29: GoAnim(playerid,"BEACH","Lay_Bac_loop",4.1,1,0,0,0,0,0); case 30: GoAnim(playerid,"BEACH","Parksit_w_loop",4.1,1,0,0,0,0,0); case 31: GoAnim(playerid,"BEACH","Sitnwait_Loop_W",4.1,1,0,0,0,0,0); case 32: GoAnim(playerid,"BEACH","Parksit_M_loop",4.1,1,0,0,0,0,0); case 33: GoAnim(playerid,"benchpress","gym_bp_celebrate",4.1,1,0,0,0,0,0); case 34: GoAnim(playerid,"LOWRIDER","Rap_C_loop",4.1,1,0,0,0,0,0); case 35: GoAnim(playerid,"LOWRIDER","Rap_B_loop",4.1,1,0,0,0,0,0); case 36: GoAnim(playerid,"LOWRIDER","Rap_A_loop",4.1,1,0,0,0,0,0); case 37: GoAnim(playerid,"BSKTBALL","BBALL_idleloop",4.1,1,0,0,0,0,0); case 38: ApplyAnimation(playerid,"BSKTBALL","BBALL_Jump_Shot",4.1,0,0,0,0,0,1); case 39: ApplyAnimation(playerid,"BSKTBALL","BBALL_pickup",4.1,0,0,0,0,0,1); case 40: ApplyAnimation(playerid,"CAMERA","camstnd_cmon",4.1,0,0,0,0,0,1); case 41: GoAnim(playerid,"CAR","fixn_car_loop",4.1,1,0,0,0,0,0); case 42: GoAnim(playerid,"CAR_CHAT","car_talkm_loop",4.1,1,0,0,0,0,0); case 43: GoAnim(playerid,"COP_AMBIENT","coplook_loop",4.1,1,0,0,0,0,0); case 44: GoAnim(playerid,"CRACK","Bbalbat_Idle_01",4.1,1,0,0,0,0,0); case 45: GoAnim(playerid,"CRACK","Bbalbat_Idle_02",4.1,1,0,0,0,0,0); case 46: ApplyAnimation(playerid,"GHANDS","gsign1",4.1,0,0,0,0,0,1); case 47: ApplyAnimation(playerid,"GHANDS","gsign2",4.1,0,0,0,0,0,1); case 48: ApplyAnimation(playerid,"GHANDS","gsign3",4.1,0,0,0,0,0,1); case 49: ApplyAnimation(playerid,"GHANDS","gsign4",4.1,0,0,0,0,0,1); case 50: ApplyAnimation(playerid,"GHANDS","gsign5",4.1,0,0,0,0,0,1); case 51: ApplyAnimation(playerid,"GHANDS","gsign1LH",4.1,0,0,0,0,0,1); case 52: ApplyAnimation(playerid,"GHANDS","gsign2LH",4.1,0,0,0,0,0,1); case 53: ApplyAnimation(playerid,"GHANDS","gsign4LH",4.1,0,0,0,0,0,1); case 54: GoAnim(playerid,"GRAVEYARD","mrnF_loop",4.1,1,0,0,0,0,0); case 55: GoAnim(playerid,"MISC","seat_LR",4.1,1,0,0,0,0,0); case 56: GoAnim(playerid,"INT_HOUSE","Lou_in",4.1,0,1,1,1,1,0); case 57: GoAnim(playerid,"INT_OFFICE","OFF_sit_Bored_loop",4.1,1,0,0,0,0,0); case 58: GoAnim(playerid,"LOWRIDER","F_smklean_loop",4.1,1,0,0,0,0,0); case 59: ApplyAnimation(playerid,"MEDIC","CPR",4.1,0,0,0,0,0,1); case 60: GoAnim(playerid,"GANGS","LeanIn",4.1,0,1,1,1,1,0); case 61: GoAnim(playerid,"MISC","plyrlean_loop",4.1,1,0,0,0,0,0); case 62: ApplyAnimation(playerid,"MISC","plyr_shkhead",4.1,0,0,0,0,0,1); case 63: GoAnim(playerid,"MISC","scratchballs_01",4.1,1,0,0,0,0,0); } SetPVarInt(playerid,"Animation", 2); TextDrawShowForPlayer(playerid, AnimDraw); return 1; } CMD:anim(playerid, params[]) // делаем команду { new id; if(sscanf(params,"i",id)) { stringer[0] = EOS; strcat(stringer,"1. Танец - 1\n2. Танец - 2\n3. Танец - 3\n4. Танец - 4\n5. Стойка дилера\n6. Передал что-то\n7. Съел что-то\n8. Справить нужду\n9. Медитация\n10. Сидеть раненым\n11. Спать на боку\n12. Лечь на спину\n13. Шлепнуть рукой\n14. Наносить граффити 1\n15. Наносить граффити 2\n16. Курение\n17. Ограбление\n18. Одеть маску\n19. Руки в верх\n20. Позвать кого-то\n21. Поднять руки\n22. Болельщик 1\n23. Болельщик 2\n24. Болельщик 3\n"); strcat(stringer,"25. Показать средний палец\n26. Выпить что-то\n27. Махать руками\n28. Мужское курение\n29. Прилечь 1\n30. Прилечь 2\n31. Прилечь 3\n32. Прилечь 4\n33. Присесть на пол\n34. Читать реп 1\n35. Читать реп 2\n36. Читать реп 3\n37. Читать реп 4\n38. Набивать мяч\n39. Кинуть мяч\n40. Поднять мяч\n41. Позвать\n42. Чинить авто\n43. Прислониться к авто\n44. Сложить руки вместе\n"); strcat(stringer,"45. Держать биту 1\n46. Держать биту 2\n47. Гангстерский жест 1\n48. Гангстерский жест 2\n49. Гангстерский жест 3\n50. Гангстерский жест 4\n51. Гангстерский жест 5\n52. Гангстерский жест 6\n53. Гангстерский жест 7\n54. Гангстерский жест 8\n55. Плакать\n56. Присесть 1\n57. Присесть 2\n58. Присесть облокотившись\n59. Женское курение\n60. Искусственное дыхание\n61. Облокотится\n62. Облокотится 2\n63. Facepalm\n64. Чесаться"); ShowPlayerDialog(playerid,1134,DIALOG_STYLE_LIST, "Список анимаций", stringer, "Выбрать", "Отмена"); } switch(id) { case 0: { stringer[0] = EOS; strcat(stringer,"1. Танец - 1\n2. Танец - 2\n3. Танец - 3\n4. Танец - 4\n5. Стойка дилера\n6. Передал что-то\n7. Съел что-то\n8. Справить нужду\n9. Медитация\n10. Сидеть раненым\n11. Спать на боку\n12. Лечь на спину\n13. Шлепнуть рукой\n14. Наносить граффити 1\n15. Наносить граффити 2\n16. Курение\n17. Ограбление\n18. Одеть маску\n19. Руки в верх\n20. Позвать кого-то\n21. Поднять руки\n22. Болельщик 1\n23. Болельщик 2\n24. Болельщик 3\n"); strcat(stringer,"25. Показать средний палец\n26. Выпить что-то\n27. Махать руками\n28. Мужское курение\n29. Прилечь 1\n30. Прилечь 2\n31. Прилечь 3\n32. Прилечь 4\n33. Присесть на пол\n34. Читать реп 1\n35. Читать реп 2\n36. Читать реп 3\n37. Читать реп 4\n38. Набивать мяч\n39. Кинуть мяч\n40. Поднять мяч\n41. Позвать\n42. Чинить авто\n43. Прислониться к авто\n44. Сложить руки вместе\n"); strcat(stringer,"45. Держать биту 1\n46. Держать биту 2\n47. Гангстерский жест 1\n48. Гангстерский жест 2\n49. Гангстерский жест 3\n50. Гангстерский жест 4\n51. Гангстерский жест 5\n52. Гангстерский жест 6\n53. Гангстерский жест 7\n54. Гангстерский жест 8\n55. Плакать\n56. Присесть 1\n57. Присесть 2\n58. Присесть облокотившись\n59. Женское курение\n60. Искусственное дыхание\n61. Облокотится\n62. Облокотится 2\n63. Facepalm\n64. Чесаться"); ShowPlayerDialog(playerid,1134,DIALOG_STYLE_LIST, "Список анимаций", stringer, "Выбрать", "Отмена"); return 1; } case 1: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE1); case 2: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE2); case 3: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE3); case 4: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE4); case 5: GoAnim(playerid,"DEALER","Dealer_idle",4.1,1,0,0,0,0,0); case 6: ApplyAnimation(playerid,"DEALER","Dealer_Deal",4.1,0,0,0,0,0,1); case 7: ApplyAnimation(playerid,"FOOD","Eat_Burger",4.1,0,0,0,0,0,1); case 8: ApplyAnimation(playerid,"PAULNMAC","Piss_in",4.1,0,0,0,0,0,1); case 9: GoAnim(playerid,"PARK","Tai_Chi_Loop",4.1,1,0,0,0,0,0); case 10: GoAnim(playerid,"CRACK","Crckidle1",4.1,1,0,0,0,0,0); case 11: GoAnim(playerid,"CRACK","Crckidle2",4.1,1,0,0,0,0,0); case 12: GoAnim(playerid,"CRACK","Crckidle4",4.1,1,0,0,0,0,0); case 13: ApplyAnimation(playerid,"SWEET","sweet_ass_slap",4.1,0,0,0,0,0,1); case 14: GoAnim(playerid,"SPRAYCAN","spraycan_full",4.1,1,0,0,0,0,0); case 15: GoAnim(playerid,"GRAFFITI","spraycan_fire",4.1,1,0,0,0,0,0); case 16: GoAnim(playerid,"SMOKING","M_smkstnd_loop",4.1,1,0,0,0,0,0); case 17: GoAnim(playerid,"SHOP","ROB_Loop_Threat",4.1,1,0,0,0,0,0); case 18: ApplyAnimation(playerid,"SHOP","ROB_shifty",4.1,0,0,0,0,0,1); case 19: GoAnim(playerid,"PED","handsup",4.1,1,0,0,0,0,0); case 20: GoAnim(playerid,"RYDER","Ryd_Beckon_02",4.1,1,0,0,0,0,0); case 21: ApplyAnimation(playerid,"RIOT","Riot_Angry",4.1,0,0,0,0,0,0); case 22: GoAnim(playerid,"RIOT","Riot_Angry_B",4.1,1,0,0,0,0,0); case 23: GoAnim(playerid,"RIOT","Riot_Chant",4.1,1,1,0,0,0,0); case 24: GoAnim(playerid,"RIOT","Riot_Punches",4.1,1,0,0,0,0,0); case 25: ApplyAnimation(playerid,"PED","fucku",4.1,0,0,0,0,0,1); case 26: ApplyAnimation(playerid,"BAR","dnK_StndM_loop",4.1,0,0,0,0,0,1); case 27: GoAnim(playerid,"BD_FIRE","BD_Panic_03",4.1,1,0,0,0,0,0); case 28: GoAnim(playerid,"BD_FIRE","M_smklean_loop",4.1,1,0,0,0,0,0); case 29: GoAnim(playerid,"BEACH","bather",4.1,1,0,0,0,0,0); case 30: GoAnim(playerid,"BEACH","Lay_Bac_loop",4.1,1,0,0,0,0,0); case 31: GoAnim(playerid,"BEACH","Parksit_w_loop",4.1,1,0,0,0,0,0); case 32: GoAnim(playerid,"BEACH","Sitnwait_Loop_W",4.1,1,0,0,0,0,0); case 33: GoAnim(playerid,"BEACH","Parksit_M_loop",4.1,1,0,0,0,0,0); case 34: GoAnim(playerid,"benchpress","gym_bp_celebrate",4.1,1,0,0,0,0,0); case 35: GoAnim(playerid,"LOWRIDER","Rap_C_loop",4.1,1,0,0,0,0,0); case 36: GoAnim(playerid,"LOWRIDER","Rap_B_loop",4.1,1,0,0,0,0,0); case 37: GoAnim(playerid,"LOWRIDER","Rap_A_loop",4.1,1,0,0,0,0,0); case 38: GoAnim(playerid,"BSKTBALL","BBALL_idleloop",4.1,1,0,0,0,0,0); case 39: ApplyAnimation(playerid,"BSKTBALL","BBALL_Jump_Shot",4.1,0,0,0,0,0,1); case 40: ApplyAnimation(playerid,"BSKTBALL","BBALL_pickup",4.1,0,0,0,0,0,1); case 41: ApplyAnimation(playerid,"CAMERA","camstnd_cmon",4.1,0,0,0,0,0,1); case 42: GoAnim(playerid,"CAR","fixn_car_loop",4.1,1,0,0,0,0,0); case 43: GoAnim(playerid,"CAR_CHAT","car_talkm_loop",4.1,1,0,0,0,0,0); case 44: GoAnim(playerid,"COP_AMBIENT","coplook_loop",4.1,1,0,0,0,0,0); case 45: GoAnim(playerid,"CRACK","Bbalbat_Idle_01",4.1,1,0,0,0,0,0); case 46: GoAnim(playerid,"CRACK","Bbalbat_Idle_02",4.1,1,0,0,0,0,0); case 47: ApplyAnimation(playerid,"GHANDS","gsign1",4.1,0,0,0,0,0,1); case 48: ApplyAnimation(playerid,"GHANDS","gsign2",4.1,0,0,0,0,0,1); case 49: ApplyAnimation(playerid,"GHANDS","gsign3",4.1,0,0,0,0,0,1); case 50: ApplyAnimation(playerid,"GHANDS","gsign4",4.1,0,0,0,0,0,1); case 51: ApplyAnimation(playerid,"GHANDS","gsign5",4.1,0,0,0,0,0,1); case 52: ApplyAnimation(playerid,"GHANDS","gsign1LH",4.1,0,0,0,0,0,1); case 53: ApplyAnimation(playerid,"GHANDS","gsign2LH",4.1,0,0,0,0,0,1); case 54: ApplyAnimation(playerid,"GHANDS","gsign4LH",4.1,0,0,0,0,0,1); case 55: GoAnim(playerid,"GRAVEYARD","mrnF_loop",4.1,1,0,0,0,0,0); case 56: GoAnim(playerid,"MISC","seat_LR",4.1,1,0,0,0,0,0); case 57: GoAnim(playerid,"INT_HOUSE","Lou_in",4.1,0,1,1,1,1,0); case 58: GoAnim(playerid,"INT_OFFICE","OFF_sit_Bored_loop",4.1,1,0,0,0,0,0); case 59: GoAnim(playerid,"LOWRIDER","F_smklean_loop",4.1,1,0,0,0,0,0); case 60: ApplyAnimation(playerid,"MEDIC","CPR",4.1,0,0,0,0,0,1); case 61: GoAnim(playerid,"GANGS","LeanIn",4.1,0,1,1,1,1,0); case 62: GoAnim(playerid,"MISC","plyrlean_loop",4.1,1,0,0,0,0,0); case 63: ApplyAnimation(playerid,"MISC","plyr_shkhead",4.1,0,0,0,0,0,1); case 64: GoAnim(playerid,"MISC","scratchballs_01",4.1,1,0,0,0,0,0); } SetPVarInt(playerid,"Animation", 2); TextDrawShowForPlayer(playerid, AnimDraw); return 1; } GoAnim(playerid,alib[],aanim[],Float:atime,amove,ax,ay,az,af,ac) { ApplyAnimation(playerid,alib,aanim,atime,amove,ax,ay,az,af,ac); return 1; }
  10. Сделал спидометр, может кому понадобится или понравится. Если вы будете сливать на другие сайты или группы просьба указать автора. P.S. Только учусь рисовать текстдравы, буду рад тем кто поможет. [spoiler=Скрин]https://imgur.com/a/ahIgj [spoiler=Код] //Global TextDraws: new Text:TDEditor_TD[19]; TDEditor_TD[0] = TextDrawCreate(477.876892, 356.250061, "box"); TextDrawLetterSize(TDEditor_TD[0], 0.000000, 9.344070); TextDrawTextSize(TDEditor_TD[0], 634.000000, 0.000000); TextDrawAlignment(TDEditor_TD[0], 1); TextDrawColor(TDEditor_TD[0], -1); TextDrawUseBox(TDEditor_TD[0], 1); TextDrawBoxColor(TDEditor_TD[0], -1); TextDrawSetShadow(TDEditor_TD[0], 0); TextDrawSetOutline(TDEditor_TD[0], 0); TextDrawBackgroundColor(TDEditor_TD[0], 255); TextDrawFont(TDEditor_TD[0], 2); TextDrawSetProportional(TDEditor_TD[0], 1); TextDrawSetShadow(TDEditor_TD[0], 0); TDEditor_TD[1] = TextDrawCreate(477.876892, 356.250061, "box"); TextDrawLetterSize(TDEditor_TD[1], 0.000000, 9.344070); TextDrawTextSize(TDEditor_TD[1], 634.000000, 0.000000); TextDrawAlignment(TDEditor_TD[1], 1); TextDrawColor(TDEditor_TD[1], -1); TextDrawUseBox(TDEditor_TD[1], 1); TextDrawBoxColor(TDEditor_TD[1], -1); TextDrawSetShadow(TDEditor_TD[1], 0); TextDrawSetOutline(TDEditor_TD[1], 0); TextDrawBackgroundColor(TDEditor_TD[1], 255); TextDrawFont(TDEditor_TD[1], 2); TextDrawSetProportional(TDEditor_TD[1], 1); TextDrawSetShadow(TDEditor_TD[1], 0); TDEditor_TD[2] = TextDrawCreate(495.680908, 373.166656, "box"); TextDrawLetterSize(TDEditor_TD[2], 0.000000, -0.635429); TextDrawTextSize(TDEditor_TD[2], 619.000000, 0.000000); TextDrawAlignment(TDEditor_TD[2], 1); TextDrawColor(TDEditor_TD[2], -1); TextDrawUseBox(TDEditor_TD[2], 1); TextDrawBoxColor(TDEditor_TD[2], 255); TextDrawSetShadow(TDEditor_TD[2], 0); TextDrawSetOutline(TDEditor_TD[2], 0); TextDrawBackgroundColor(TDEditor_TD[2], 255); TextDrawFont(TDEditor_TD[2], 1); TextDrawSetProportional(TDEditor_TD[2], 1); TextDrawSetShadow(TDEditor_TD[2], 0); TDEditor_TD[3] = TextDrawCreate(607.658142, 356.249938, "Lada Granta"); TextDrawLetterSize(TDEditor_TD[3], 0.348461, 1.471665); TextDrawAlignment(TDEditor_TD[3], 3); TextDrawColor(TDEditor_TD[3], 255); TextDrawSetShadow(TDEditor_TD[3], 0); TextDrawSetOutline(TDEditor_TD[3], 0); TextDrawBackgroundColor(TDEditor_TD[3], 255); TextDrawFont(TDEditor_TD[3], 2); TextDrawSetProportional(TDEditor_TD[3], 1); TextDrawSetShadow(TDEditor_TD[3], 0); TDEditor_TD[4] = TextDrawCreate(520.816223, 375.499938, "Speed:"); TextDrawLetterSize(TDEditor_TD[4], 0.305357, 1.384165); TextDrawAlignment(TDEditor_TD[4], 3); TextDrawColor(TDEditor_TD[4], 255); TextDrawSetShadow(TDEditor_TD[4], 0); TextDrawSetOutline(TDEditor_TD[4], 0); TextDrawBackgroundColor(TDEditor_TD[4], 255); TextDrawFont(TDEditor_TD[4], 2); TextDrawSetProportional(TDEditor_TD[4], 1); TextDrawSetShadow(TDEditor_TD[4], 0); TDEditor_TD[5] = TextDrawCreate(512.547424, 388.333404, "Fuel:"); TextDrawLetterSize(TDEditor_TD[5], 0.305357, 1.384165); TextDrawAlignment(TDEditor_TD[5], 3); TextDrawColor(TDEditor_TD[5], 255); TextDrawSetShadow(TDEditor_TD[5], 0); TextDrawSetOutline(TDEditor_TD[5], 0); TextDrawBackgroundColor(TDEditor_TD[5], 255); TextDrawFont(TDEditor_TD[5], 2); TextDrawSetProportional(TDEditor_TD[5], 1); TextDrawSetShadow(TDEditor_TD[5], 0); TDEditor_TD[6] = TextDrawCreate(514.421630, 401.166748, "Heal:"); TextDrawLetterSize(TDEditor_TD[6], 0.305357, 1.384165); TextDrawAlignment(TDEditor_TD[6], 3); TextDrawColor(TDEditor_TD[6], 255); TextDrawSetShadow(TDEditor_TD[6], 0); TextDrawSetOutline(TDEditor_TD[6], 0); TextDrawBackgroundColor(TDEditor_TD[6], 255); TextDrawFont(TDEditor_TD[6], 2); TextDrawSetProportional(TDEditor_TD[6], 1); TextDrawSetShadow(TDEditor_TD[6], 0); TDEditor_TD[7] = TextDrawCreate(481.157135, 390.083374, "box"); TextDrawLetterSize(TDEditor_TD[7], 0.000000, -0.401169); TextDrawTextSize(TDEditor_TD[7], 630.000000, 0.000000); TextDrawAlignment(TDEditor_TD[7], 1); TextDrawColor(TDEditor_TD[7], -1); TextDrawUseBox(TDEditor_TD[7], 1); TextDrawBoxColor(TDEditor_TD[7], 255); TextDrawSetShadow(TDEditor_TD[7], 0); TextDrawSetOutline(TDEditor_TD[7], 0); TextDrawBackgroundColor(TDEditor_TD[7], 255); TextDrawFont(TDEditor_TD[7], 1); TextDrawSetProportional(TDEditor_TD[7], 1); TextDrawSetShadow(TDEditor_TD[7], 0); TDEditor_TD[8] = TextDrawCreate(480.688598, 402.333435, "box"); TextDrawLetterSize(TDEditor_TD[8], 0.000000, -0.401169); TextDrawTextSize(TDEditor_TD[8], 630.000000, 0.000000); TextDrawAlignment(TDEditor_TD[8], 1); TextDrawColor(TDEditor_TD[8], -1); TextDrawUseBox(TDEditor_TD[8], 1); TextDrawBoxColor(TDEditor_TD[8], 255); TextDrawSetShadow(TDEditor_TD[8], 0); TextDrawSetOutline(TDEditor_TD[8], 0); TextDrawBackgroundColor(TDEditor_TD[8], 255); TextDrawFont(TDEditor_TD[8], 1); TextDrawSetProportional(TDEditor_TD[8], 1); TextDrawSetShadow(TDEditor_TD[8], 0); TDEditor_TD[9] = TextDrawCreate(480.220062, 414.583557, "box"); TextDrawLetterSize(TDEditor_TD[9], 0.000000, -0.401169); TextDrawTextSize(TDEditor_TD[9], 630.000000, 0.000000); TextDrawAlignment(TDEditor_TD[9], 1); TextDrawColor(TDEditor_TD[9], -1); TextDrawUseBox(TDEditor_TD[9], 1); TextDrawBoxColor(TDEditor_TD[9], 255); TextDrawSetShadow(TDEditor_TD[9], 0); TextDrawSetOutline(TDEditor_TD[9], 0); TextDrawBackgroundColor(TDEditor_TD[9], 255); TextDrawFont(TDEditor_TD[9], 0); TextDrawSetProportional(TDEditor_TD[9], 1); TextDrawSetShadow(TDEditor_TD[9], 0); TDEditor_TD[10] = TextDrawCreate(481.156646, 419.249908, "box"); TextDrawLetterSize(TDEditor_TD[10], 0.000000, 1.894583); TextDrawTextSize(TDEditor_TD[10], 526.000000, 0.000000); TextDrawAlignment(TDEditor_TD[10], 1); TextDrawColor(TDEditor_TD[10], -1); TextDrawUseBox(TDEditor_TD[10], 1); TextDrawBoxColor(TDEditor_TD[10], 65535); TextDrawSetShadow(TDEditor_TD[10], 0); TextDrawSetOutline(TDEditor_TD[10], 0); TextDrawBackgroundColor(TDEditor_TD[10], 204560); TextDrawFont(TDEditor_TD[10], 1); TextDrawSetProportional(TDEditor_TD[10], 1); TextDrawSetShadow(TDEditor_TD[10], 0); TDEditor_TD[11] = TextDrawCreate(532.225830, 419.249908, "box"); TextDrawLetterSize(TDEditor_TD[11], 0.000000, 1.894583); TextDrawTextSize(TDEditor_TD[11], 582.000000, 0.000000); TextDrawAlignment(TDEditor_TD[11], 1); TextDrawColor(TDEditor_TD[11], -1); TextDrawUseBox(TDEditor_TD[11], 1); TextDrawBoxColor(TDEditor_TD[11], 65535); TextDrawSetShadow(TDEditor_TD[11], 0); TextDrawSetOutline(TDEditor_TD[11], 0); TextDrawBackgroundColor(TDEditor_TD[11], 204560); TextDrawFont(TDEditor_TD[11], 1); TextDrawSetProportional(TDEditor_TD[11], 1); TextDrawSetShadow(TDEditor_TD[11], 0); TDEditor_TD[12] = TextDrawCreate(587.979919, 419.249877, "box"); TextDrawLetterSize(TDEditor_TD[12], 0.000000, 1.894583); TextDrawTextSize(TDEditor_TD[12], 631.000000, 0.000000); TextDrawAlignment(TDEditor_TD[12], 1); TextDrawColor(TDEditor_TD[12], -1); TextDrawUseBox(TDEditor_TD[12], 1); TextDrawBoxColor(TDEditor_TD[12], 65535); TextDrawSetShadow(TDEditor_TD[12], 0); TextDrawSetOutline(TDEditor_TD[12], 1); TextDrawBackgroundColor(TDEditor_TD[12], 255); TextDrawFont(TDEditor_TD[12], 3); TextDrawSetProportional(TDEditor_TD[12], 0); TextDrawSetShadow(TDEditor_TD[12], 0); TDEditor_TD[13] = TextDrawCreate(483.967834, 420.416778, "Door"); TextDrawLetterSize(TDEditor_TD[13], 0.360644, 1.389998); TextDrawAlignment(TDEditor_TD[13], 1); TextDrawColor(TDEditor_TD[13], -1); TextDrawSetShadow(TDEditor_TD[13], 0); TextDrawSetOutline(TDEditor_TD[13], 0); TextDrawBackgroundColor(TDEditor_TD[13], 255); TextDrawFont(TDEditor_TD[13], 2); TextDrawSetProportional(TDEditor_TD[13], 1); TextDrawSetShadow(TDEditor_TD[13], 0); TDEditor_TD[14] = TextDrawCreate(533.630981, 419.833404, "Engine"); TextDrawLetterSize(TDEditor_TD[14], 0.347994, 1.541666); TextDrawAlignment(TDEditor_TD[14], 1); TextDrawColor(TDEditor_TD[14], -1); TextDrawSetShadow(TDEditor_TD[14], 0); TextDrawSetOutline(TDEditor_TD[14], 0); TextDrawBackgroundColor(TDEditor_TD[14], 255); TextDrawFont(TDEditor_TD[14], 2); TextDrawSetProportional(TDEditor_TD[14], 1); TextDrawSetShadow(TDEditor_TD[14], 0); TDEditor_TD[15] = TextDrawCreate(589.384887, 419.150085, "lights"); TextDrawLetterSize(TDEditor_TD[15], 0.299736, 1.646667); TextDrawAlignment(TDEditor_TD[15], 1); TextDrawColor(TDEditor_TD[15], -1); TextDrawSetShadow(TDEditor_TD[15], 0); TextDrawSetOutline(TDEditor_TD[15], 0); TextDrawBackgroundColor(TDEditor_TD[15], 255); TextDrawFont(TDEditor_TD[15], 2); TextDrawSetProportional(TDEditor_TD[15], 1); TextDrawSetShadow(TDEditor_TD[15], 0); TDEditor_TD[16] = TextDrawCreate(587.511108, 374.333251, "120KM/h"); TextDrawLetterSize(TDEditor_TD[16], 0.260848, 1.547500); TextDrawAlignment(TDEditor_TD[16], 1); TextDrawColor(TDEditor_TD[16], 255); TextDrawSetShadow(TDEditor_TD[16], 0); TextDrawSetOutline(TDEditor_TD[16], 0); TextDrawBackgroundColor(TDEditor_TD[16], 255); TextDrawFont(TDEditor_TD[16], 2); TextDrawSetProportional(TDEditor_TD[16], 1); TextDrawSetShadow(TDEditor_TD[16], 0); TDEditor_TD[17] = TextDrawCreate(604.378051, 388.333282, "138L"); TextDrawLetterSize(TDEditor_TD[17], 0.296925, 1.389999); TextDrawAlignment(TDEditor_TD[17], 1); TextDrawColor(TDEditor_TD[17], 255); TextDrawSetShadow(TDEditor_TD[17], 0); TextDrawSetOutline(TDEditor_TD[17], 0); TextDrawBackgroundColor(TDEditor_TD[17], 16711935); TextDrawFont(TDEditor_TD[17], 2); TextDrawSetProportional(TDEditor_TD[17], 1); TextDrawSetShadow(TDEditor_TD[17], 0); TDEditor_TD[18] = TextDrawCreate(601.766784, 400.983398, "100%"); TextDrawLetterSize(TDEditor_TD[18], 0.320351, 1.290831); TextDrawAlignment(TDEditor_TD[18], 1); TextDrawColor(TDEditor_TD[18], 255); TextDrawSetShadow(TDEditor_TD[18], 0); TextDrawSetOutline(TDEditor_TD[18], 0); TextDrawBackgroundColor(TDEditor_TD[18], 255); TextDrawFont(TDEditor_TD[18], 2); TextDrawSetProportional(TDEditor_TD[18], 1); TextDrawSetShadow(TDEditor_TD[18], 0);
  11. Всем привет. Выкладываю свою разработку квестов //В массив игрока pQuest, pProgress //В команды CMD:quest(playerid) { new str[100], status[30], status1[30]; if(PlayerInfo[playerid][pQuest] <= 0) status = "Не выполнено"; else if(PlayerInfo[playerid][pProgress] == 1 && PlayerInfo[playerid][pQuest] <= 0) status = "Получить награду"; else if(PlayerInfo[playerid][pQuest] == 1) status = "Выполнено" if(PlayerInfo[playerid][pQuest] <= 1) status1 = "Не выполнено"; else if(PlayerInfo[playerid][pProgress] == 2 && PlayerInfo[playerid][pQuest] <= 1) status1 = "Получить награду"; else if(PlayerInfo[playerid][pQuest] == 2) status1 = "Выполнено" format(str, sizeof(str), "[1] Достигнуть 2 уровня [%s]\n[2] Достигнуть 5 уровня и накопить 20.000$[%s]", status, status1); ShowPlayerDialog(playerid, 1, DSL, "Квесты", str, "Выбрать", "Закрыть"); return 1; } //В паблик с диалогами case 1: { if(response) { switch(listitem) { { if(PlayerInfo[playerid][pQuest] <= 0) { SendClientMessage(playerid, -1, "Вы успешно взяли задание, вернитесь когда завершите задание"); SetPVarInt(playerid, "Quest", 1); } else if(PlayerInfo[playerid][pProgress] == 1 && PlayerInfo[playerid][pQuest] <= 0) { DeletePVar(playerid, "Quest"); SendClientMessage(playerid, -1, "Вы сдали задание, заберите награду"); GivePlayerMoney(playerid, 5000);//Дадите награду, любую, деньги, уровень, и т.д. Я сделаю деньги PlayerInfo[playerid][pQuest] = 1; } else if(PlayerInfo[playerid][pQuest] == 1) return SendClientMessage(playerid, -1, "Вы уже выполнили это задание. Возьмите другое!"); } { if(PlayerInfo[playerid][pQuest] == 1) { SendClientMessage(playerid, -1, "Вы успешно взяли задание, вернитесь когда завершите задание"); SetPVarInt(playerid, "Quest", 1); } else if(PlayerInfo[playerid][pProgress] == 2 && PlayerInfo[playerid][pQuest] == 1) { DeletePVar(playerid, "Quest"); SendClientMessage(playerid, -1, "Вы сдали задание, заберите награду"); GivePlayerMoney(playerid, 7000);//Дадите награду, любую, деньги, уровень, и т.д. Я сделаю деньги PlayerInfo[playerid][pQuest] = 2; PlayerInfo[playerid][pProgress] = 0; } else if(PlayerInfo[playerid][pQuest] == 2) return SendClientMessage(playerid, -1, "Вы уже выполнили это задание. Возьмите другое!"); { } } } } } //Таймер forward UpdateTimer(); public UpdateTimer();// В OnGameModeInit добавить UpdateTimer(); { if(PlayerInfo[playerid][pProgress] == 0 && GetPVarInt(playerid, "Quest") == 1) { if(PlayerInfo[playerid][pLevel] >= 2) SendClientMessage(playerid, -1, "Вы выполнили задание. Заберите награду"); PlayerInfo[playerid][pProgress] = 1; } if(PlayerInfo[playerid][pProgress] == 0 && GetPVarInt(playerid, "Quest") == 2) { if(PlayerInfo[playerid][pLevel] >= 5 && PlayerInfo[playerid][pMoney] >= 20000) SendClientMessage(playerid, -1, "Вы выполнили задание. Заберите награду"); PlayerInfo[playerid][pProgress] = 2; } return 1; }
  12. - Автор: Reinforce RP ( no piar ) - Автор копии: BELOFF # - При сливе на другие порталы указывайте автора © - TextDraw: Список лидеров Делал для себя но в конце передумал, берите может кому пригодится TD_leaders.pwn
  13. Vladimir_Kulkov

    Вывод ID читеров

    Отвечу здесь, но в следующий раз задавай вопрос в теме (а ещё лучше, перед этим немного полистать страницы обсуждений, там иногда полезная инфа по решению проблем попадается). 1. Как сделать так, чтобы выводило id's читеров в ППЧ вместо кика forward OnCheatDetected(playerid, ip_address[], type, code); public OnCheatDetected(playerid, ip_address[], type, code) { if(type) BlockIpAddress(ip_address, 0); //Среагировал на IP (например за попытку брута ркона) - блочим его else //Среагировал на ID игрока { switch(code) //Какой чит? { case 5: return 1; //Телепорт незанятых авто (античит в любом случае вернёт её на прежнее место, наказание лучше не делать) case 11: //Починка транспорта, лучше вернуть ему старое хп (если не применит его - сработает уже анти-ноп) { new vehid = GetPlayerVehicleID(playerid), Float:vhealth; AntiCheatGetVehicleHealth(vehid, vhealth); SetVehicleHealth(vehid, vhealth); return 1; } case 14: //Деньги { //Возвращаем старую сумму new a = AntiCheatGetMoney(playerid); ResetPlayerMoney(playerid); GivePlayerMoney(playerid, a); return 1; //Иное наказание также нам не нужно } case 32: return ClearAnimations(playerid, 1); //CarJack, выкидываем игрока из авто case 40: SendClientMessage(playerid, -1, MAX_CONNECTS_MSG); //Песочница (вход 2-х и более человек с одного IP), прощаемся case 41: SendClientMessage(playerid, -1, UNKNOWN_CLIENT_MSG); //Версия клиента игрока не определена, прощаемся с ним case 43..47: //Крашеры { Kick(playerid); //КРАЙНЕ рекомендуется кикать без задержки, иначе ОНО успеет крашнуть игроков return 1; } default: //Здесь все остальные читы { AddCheater(playerid); //Добавляем в панель читеров (можно также отправить сообщение всем админам) return 1; } } new pPing = GetPlayerPing(playerid) + 150; SetTimerEx("ac_KickTimer", (pPing > 500 ? 500 : pPing), false, "i", playerid); //Кик за 40 и 41 код, ac_KickTimer есть в античите и успешно сработает } return 1; } 2. Как поставить проверку на админку Можно добавить её в OnCheatDetected сразу после первого условия (в "else"), что-то вроде: if(PlayerInfo[playerid][pAdmin] > 0) return 1; но лучше, по моему, отключить нужные защиты игроку, чтобы они даже не проверяли его. Т.к. каждый мод разный, ищи у себя место, где происходит получение админки (например загрузка из бд/файлов). Далее ставь проверку, получил ли админку игрок, что-то вроде: if(PlayerInfo[playerid][pAdmin] > 0) { } И внутрь этой проверки уже добавляй отключение античитов, используя "EnableAntiCheatForPlayer", где первый аргумент это ид игрока, второй - ид античита, третий же, это флаг включить/выключить (1 и 0 соответственно). Для отключения нескольких античитов подряд (на примере всех), можно сделать через цикл: for(new i = 52; i != -1; --i) EnableAntiCheatForPlayer(playerid, i, 0); И да, если вдруг нужно, дефолтные анти-читы, то-есть вшитые в мод. Советую их удалить или закомментировать хотя-бы потому, что они лишь будут работать паралельно с подключенным и лишь давать лишнюю нагрузку. Автор: Неизвестно, взял с интернета
  14. Ко всем new: new gunjob; Ко всем forward: forward Gunjobanim(playerid); Ко всем #define: #define COLOR_ORANGE 0xFFA500AA #define COLOR_WHITE 0xFFFFFFAA #define COLOR_LIGHTGREEN 0x9ACD32AA #define GCASH 25//Зар.плата за 1ед. оружия. #define D_GUNJOB 7//ID диалога устройства на работу (сменить на доступный). #define D_GUNCJOB 8//ID диалога завершения работы (сменить на доступный). В public OnGameModeInit(): gunjob = CreatePickup(1275,23,-2157.5566,-228.0305,36.5156,-1);//Pickup устройства на работу. В public OnPlayerEnterCheckpoint(playerid): new string[256]; if(GetPVarInt(playerid, "Gjob") == 1) { ApplyAnimation(playerid,"CARRY","crry_prtial",4.1,0,1,1,1,1); SetPlayerAttachedObject(playerid,3,2969,1,0.075578,0.407083,0.000000,1.248928,97.393852,359.645050,1.000000,1.000000,1.000000); SendClientMessage(playerid, COLOR_LIGHTGREEN, "Следуйте к вашему рабочему столу."); new gcheck = random(6); if(gcheck == 0) SetPlayerCheckpoint(playerid,2744.1,-2180.4,21.9,1.5); if(gcheck == 1) SetPlayerCheckpoint(playerid,2752.6,-2185.5,21.9,1.5); if(gcheck == 2) SetPlayerCheckpoint(playerid,2748.5,-2193.5,21.9,1.5); if(gcheck == 3) SetPlayerCheckpoint(playerid,2744.3,-2190.2,21.9,1.5); if(gcheck == 4) SetPlayerCheckpoint(playerid,2743.1,-2200.8,21.9,1.5); SetPVarInt(playerid, "Gjob",2); return true; } if(GetPVarInt(playerid, "Gjob") == 2) { DisablePlayerCheckpoint(playerid); RemovePlayerAttachedObject(playerid,3); ClearAnimations(playerid); ApplyAnimation(playerid, "BUDDY", "buddy_reload", 4.1, 1, 1, 1, 1, 0); SetPlayerAttachedObject(playerid,3,355,14,0.401943,0.011442,0.010348,106.050292,330.509094,3.293162,1.000000,1.000000,1.000000); SetTimerEx("Gunjobanim", 7000, false, "i", playerid); return true; } if(GetPVarInt(playerid, "Gjob") == 3) { RemovePlayerAttachedObject(playerid,3); ApplyAnimation(playerid,"PED","IDLE_tired",4.1,0,1,1,0,1); SetPVarInt(playerid,"GUN",GetPVarInt(playerid,"GUN")+1); format(string,sizeof(string),"Оружия собрано: {9ACD32}%d {FFFFFF}ед.",GetPVarInt(playerid,"GUN")), SendClientMessage(playerid,COLOR_WHITE,string); SetPVarInt(playerid,"Gjob",1); new mcheck = random(1); if(mcheck == 0) SetPlayerCheckpoint(playerid,2757.6001000,-2182.8000500,21.8000000,1.5); } В public OnPlayerPickUpPickup(playerid, pickupid): if(pickupid == gunjob) { if(GetPVarInt(playerid, "Gunjob") == 0) ShowPlayerDialog(playerid, D_GUNJOB, 0, "Сборщик оружия", "Вы действительно хотите начать работу?", "Да", "Нет"); else ShowPlayerDialog(playerid, D_GUNCJOB, 0, "Сборщик оружия", "Вы действительно хотите завершить работу?", "Да", "Нет"); } В public OnDialogResponse: case D_GUNJOB: { if(!response) return true; SetPVarInt(playerid, "GSkin",GetPlayerSkin(playerid)); new gskin = random(2); if(gskin == 0) SetPlayerSkin(playerid, 258); if(gskin == 1) SetPlayerSkin(playerid, 259); SendClientMessage(playerid,COLOR_ORANGE,"Вы начали работу сборщика оружия. Следуйте к столу, чтобы взять ящик с металлом."); SetPVarInt(playerid,"Gunjob",1), SetPVarInt(playerid,"Gjob",1); new mcheck = random(1); if(mcheck == 0) SetPlayerCheckpoint(playerid,2757.6001000,-2182.8000500,21.8000000,1.5); } case D_GUNCJOB: { if(!response) return true; new string[128]; SetPlayerSkin(playerid, GetPVarInt(playerid, "GSkin")); format(string, 50,"Вы закончили работу. Заработано: %i долларов.",GetPVarInt(playerid, "GUN")*GCASH); SendClientMessage(playerid,COLOR_ORANGE,string); GivePlayerMoney(playerid, GetPVarInt(playerid, "GUN")*50); RemovePlayerAttachedObject(playerid, 3); DeletePVar(playerid, "Gunjob"), DeletePVar(playerid, "GUN"), DeletePVar(playerid, "Gjob"), DeletePVar(playerid, "GSkin"); DisablePlayerCheckpoint(playerid); } В конец мода: forward Gunjobanim(playerid); public Gunjobanim(playerid) { RemovePlayerAttachedObject(playerid,3); ApplyAnimation(playerid,"PED","IDLE_tired",4.1,0,1,1,0,1); ApplyAnimation(playerid,"CARRY","crry_prtial",4.1,0,1,1,1,1); SetPlayerAttachedObject(playerid,3,2969,1,0.075578,0.407083,0.000000,1.248928,97.393852,359.645050,1.000000,1.000000,1.000000); SetPVarInt(playerid, "Gjob",3); SendClientMessage(playerid, COLOR_LIGHTGREEN, "Оружие собрано. Следуйте к складу."); SetPlayerCheckpoint(playerid,2750.8000500,-2172.6001000,22.0000000,1.5); return 1; } Автор: S.Colt
  15. ArtDes17

    TextDraw - Логотип

    Сделал простой логотип, может кому понадобится или понравится. Если вы будете сливать на другие сайты или группы просьба указать автора. ТекстДрав скопирован со старого амазинга. [spoiler=Скрин]https://imgur.com/a/EKQx4 [spoiler=Код] //Global TextDraws: new Text:TDEditor_TD[3]; TDEditor_TD[0] = TextDrawCreate(548.155334, 8.583323, "A"); TextDrawLetterSize(TDEditor_TD[0], 0.772475, 3.069992); TextDrawAlignment(TDEditor_TD[0], 1); TextDrawColor(TDEditor_TD[0], 65535); TextDrawSetShadow(TDEditor_TD[0], 0); TextDrawSetOutline(TDEditor_TD[0], 1); TextDrawBackgroundColor(TDEditor_TD[0], -1); TextDrawFont(TDEditor_TD[0], 0); TextDrawSetProportional(TDEditor_TD[0], 1); TextDrawSetShadow(TDEditor_TD[0], 0); TDEditor_TD[1] = TextDrawCreate(569.238769, 19.666667, "mazing"); TextDrawLetterSize(TDEditor_TD[1], 0.436076, 2.084167); TextDrawAlignment(TDEditor_TD[1], 1); TextDrawColor(TDEditor_TD[1], -1); TextDrawSetShadow(TDEditor_TD[1], 0); TextDrawSetOutline(TDEditor_TD[1], 0); TextDrawBackgroundColor(TDEditor_TD[1], 255); TextDrawFont(TDEditor_TD[1], 2); TextDrawSetProportional(TDEditor_TD[1], 1); TextDrawSetShadow(TDEditor_TD[1], 0); TDEditor_TD[2] = TextDrawCreate(546.749450, 35.416698, "RolePlay"); TextDrawLetterSize(TDEditor_TD[2], 0.430453, 1.739999); TextDrawAlignment(TDEditor_TD[2], 1); TextDrawColor(TDEditor_TD[2], -1); TextDrawSetShadow(TDEditor_TD[2], 0); TextDrawSetOutline(TDEditor_TD[2], 0); TextDrawBackgroundColor(TDEditor_TD[2], 65535); TextDrawFont(TDEditor_TD[2], 2); TextDrawSetProportional(TDEditor_TD[2], 1); TextDrawSetShadow(TDEditor_TD[2], 0);
  16. Здравствуйте, сегодня я хотел бы научить менять модельки, без всяких мод-паков и т.д.. Программы, которые нам потребуются: 1. Alci`s IMG Editor (лично я им пользовался) 2. Моделька. Приступаем к работе: 1. Открываем Alci`s IMG Editor, затем им открываем "gta3.img" Путь: E:\Games\GTA Criminal Russia P.S у вас может быть другой. 2. После открытия "gta3.img" нажимаем сверху "Import (remove if exists), выбираем модельку которой хотим заменить стандартную, нажимаем "открыть". 3. После этих всех действий нажимаем сверху кнопочку "Save", тем самым мы сохранили наши действия и заменили модельку. Вопрос/Ответ: 1 вопрос: сколько файлов у одной модельки? ответ: 2 файла, .txd и .dff (пример: ak47.txd;ak47.dff) 2 вопрос: где скачать модельку? ответ: скачать можно на многих сайтах, проще набрать в яндексе "скачать модельки для крмп", высветится множество сайтов. 3 вопрос: как просмотреть модели? ответ: для этого существует еще один редактор, txdworkshop, в нем можно просматривать, удалять, добавлять модели. P.S - Вроде все сказал, если что-то не дополнил или сказал неверно пишите ниже. Автор: Jobby42
  17. Здаров, бандиты Часто вижу такие сообщения, что у игроков мерцают текстуры и Егор наверное уже задолбался отправлять их на ютуб и вбивать в поиске "regedit", когда-то в 2015 у меня тоже такая вещь была, но я ее исправил через интернет 2015 все-таки, начало моей жизни в крмп Короче, давайте к работе перейдем ! 1: Зажимаем сочетание клавиш WIN + R, открывается "Выполнить", туда пишем "regedit", у нас открывается менюшка, де куча папок, несвязанных с крмп в принципе, ну ладно. 2: Короче, тыкаем на папку "HKEY_CURRENT_USER" открываются еще больше папок , тыкаем на "Software", еще больше папок , но, не пугайтесь , просто не смотрите на них , здесь нам нужно найти кое-как и открыть "www.gtasrv.ru", нашли? Ай молодцы , ну короче, снова надо открыть папку, уже нашу "CR-MP", в ней тыкаем по "GenerationC"(клик), если у вас там 2 файла, то, мы делаем следующий пункт: 3. Тыкаем там по пустому месту ПКМ > Создать > Параметр DWORD(32 бита) > сразу нужно будет задать имя, пишите: "streaming_memory" > потом кликаем по нему и жмем "Изменить" > там выбираем "Система исчисления": десятичная, Значение: 820(клик) > жмем "Ок". Все, ваша проблема решена) Если что, общий путь должен получиться таков: "HKEY_CURRENT_USER\Software\www.gtasrv.ru\CR-MP\GenerationC". Автор: SCRIPTMAN вроде как, но и до меня такую вещь придумали , так что, в принципе и Интернет Спасибо!
  18. Приветствую пользователей портала, просматривая темы я столкнулся с тем, что одно из самых часто используемых навыков в скриптинге (подсчёт строки) у некоторых или вообще не используется, или же используется с грубейшими ошибками. "Непорядок" - подумал я, и решил найти туториал о подсчёте строки, который я так и не нашёл . В итоге решил написать максимально подробный туториал о подсчёте строки, в котором освещу два способа подсчёта, каждый из которых будет иметь свои плюсы и минусы (о которых в конце). Начнём пожалуй! Способ первый (классический): Давайте напишу готовый код, который впоследствии разберу: new string[28], apple = 200; format(string, sizeof(string), "В ящике находится %d яблок", apple); SCM(playerid, 0xFFFFFFFF, string); Ну а теперь давайте разберёмся, каким образом я посчитал сам string 1) Считаем размер самой строки (которую форматируем), её размер 26 символов (26 ячеек) 2) Добавляем +1 ячейку для "нуль символа" - "\0" (NULL). 26+1 = 27 3) Вычитаем длину имеющихся в строке спецификаторов (%d, %s, %i и т.д.). У нас 1 спецификатор, длина которого 2 символа. 27-2 = 25 4) Прибавляем максимальную длину данных всех спецификаторов. Максимальное количество яблок в ящике - трёхзначное число. Выделяем 3 ячейки под это число. 25+3 = 28 Profit! Мы посчитали размер строки. Для закрепления давайте посчитаем размер строки с несколькими спецификаторами: new string[57], apple = 200, pear = 300; format(string, sizeof(string), "В первом ящике находится %d яблок, а во втором %d груш", apple); SCM(playerid, 0xFFFFFFFF, string); /* 1) Считаем размер исходной строки: В первом ящике находится %d яблок, а во втором %d груш - 54 символа 2) Добавляем нуль символ: 54+1 = 55 ячеек 3) Вычитаем длину имеющихся спецификаторов (их два, каждый длиной в 2 символа): 55 - (2*2) = 51 ячейка 4) Прибавляем максимальную длину спецификаторов (их два, у каждого максимальная длина - 3 символа): 51+(3*2) = 57 Размер строки - 57 ячеек. Давайте разберём его плюсы и минусы: Плюсы: • Привычность использования • Удобно считать при надобности посчитать несколько строк в одном участке кода • Новичкам проще понять данный метод Минусы: • Скорость подсчёта • При дальнейшем изменении данных сложнее пересчитать размер Способ второй (Автор: Daniel Cortez): Данный способ лично я применяю для подсчёта размера MySQL запросов (потом по плюсам и минусам поймёте почему) Давайте разберу готовый код: static const fmt_str[] = "Ваш id: %d"; new string[sizeof(fmt_str) + (-2 + 3)]; format(string, sizeof(string), fmt_str, playerid); SCM(playerid, 0xFFFFFFFF, string); Давайте разберёмся как идёт подсчёт: 1) Сама исходная строка считается автоматически посредством sizeof(fmt_str) 2) Нуль символ считается автоматически при использовании sizeof 3) Спецификаторы считаются по формуле и прибавляются к текущей строке Давайте разберём формулу: (-размер спецификатора+максимальная длина выводимых данных) Длина спецификатора у нас - 2 символа (2 ячейки), а максимальная длина ID игрока в игре - 3 символа (3 ячейки), из этого получаем формулу: (-2+3) Для наглядности и закрепления материала давайте разберу вариант с несколькими спецификаторами: static const fmt_str[] = "Ваш id: %d, ваш IP: %s"; new string[sizeof(fmt_str) + (-2 + 3) + (-2 + 16)], ip[16]; GetPlayerIp(playerid, ip, sizeof(ip)); format(string, sizeof(string), fmt_str, playerid, ip); SCM(playerid, 0xFFFFFFFF, string); /* Размер самой строки посчитан автоматически, нам требуется посчитать лишь размер спецификаторов ID мы уже считали в предыдущем примере IP посчитан также, изначальная длина спецификатора + максимальная длина выводимых данных. Максимальная длина IP - 16 символов В итоге получаем формулу: исходная строка (-2 + 3) + (-2 + 16) */ Давайте разберём его плюсы и минусы: Плюсы: • Можно легко изменить размер строки при последующем изменении данных (нужно лишь поменять исходную строку и дополнить формулу) • Скорость подсчёта Минусы: • Неудобство создания в местах кода, где необходимо несколько раз изменять строку • Громоздкая конструкция кода (я советую делать готовую заготовку и вставлять её) Вывод: Каждый из способов удобен и не удобен в конкретных ситуациях. Лично я использую первый способ везде кроме MySQL запросов. Какой использовать способ вам - решать только вам . Спасибо за внимание! Автор: LeonYT
  19. Приветствую пользователей портала, довольно часто приходилось встречать не особо дальновидных людей (в том числе пишущих мануалы/туториалы ), которые создавали колоссальной длины строки не учитывая тот факт, что редактировать в дальнейшем всё это крайне трудно. Как это обычно выглядит: ShowPlayerDialog(playerid, /*тут id диалога*/, DIALOG_STYLE_MSGBOX, "Заголовок", "Тутмноготекста\nТутмноготекста\nТутмноготекста\nТутмноготекста\nТутмноготекста\n\nАТУТВООБЩЕКАПСОМ", "Кнопка 1", "Кнопка 2"); Если вам в дальнейшем понадобится редактировать сие чудо, то вы будете похожи на человека, одевающего майку через ноги . Конечно вкусы у всех разные, но появление горизонтальной полосы прокрутки, которую вам придётся не раз двигать, чтобы добраться до нужного участка кода, вам явно не ускорит работу. Так как же вам поступить? Будем переносить аргументы и саму строку! ShowPlayerDialog(playerid, /*тут id диалога*/, DIALOG_STYLE_MSGBOX, "Заголовок", "Тутмноготекста\n\ Тутмноготекста\n\ Тутмноготекста\n\ Тутмноготекста\n\ Тутмноготекста\n\n\ АТУТВООБЩЕКАПСОМ", "Кнопка 1", "Кнопка 2"); Вы также можете экспериментировать с табуляцией, что даст вам более наглядную структуру. ShowPlayerDialog(playerid, /*тут id диалога*/, DIALOG_STYLE_MSGBOX, "Заголовок", "Тутмноготекста\n\ Тутмноготекста\n\ Тутмноготекста\n\ Тутмноготекста\n\ Тутмноготекста\n\n\ АТУТВООБЩЕКАПСОМ", "Кнопка 1", "Кнопка 2"); Вы также можете использовать данный приём в других функциях, давайте покажу как это действует с format: new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); new ip[16]; GetPlayerIp(playerid, ip, sizeof(ip)); new dialog_str[85+1+(-2+MAX_PLAYER_NAME)+(-2+16)+(-2+5)]; format(dialog_str, sizeof(dialog_str), "{FFFFFF}Ваш ник: {FFFF00}%s\n\ {FFFFFF}Ваш IP: {FFFF00}%s\n\ {FFFFFF}Ваш Ping: {FFFF00}%d", name, ip, GetPlayerPing(playerid) ); ShowPlayerDialog(playerid, /*тут id диалога*/, DIALOG_STYLE_MSGBOX, "Информация о игроке", dialog_str, "Закрыть", ""); В данном примере мы видим, что дальнейшее редактирование и добавление новых спецификаторов будет намного проще, нежели мы бы писали всё в одну строку. P.S. Символ перехода (обратный слэш) в подсчёте строки не участвует, т.к. он требуется для распознания компилятором переноса строки. (В конечной строке этого символа попросту не будет). Ну а если вы до сих пор не знаете, как посчитать размер строки, то советую посетить вам данную тему. Спасибо за внимание . Удачи в начинаниях! Автор: LeonYT
  20. Всем доброго времени суток, хочу поделиться с Вами оптимизированной системой ремня безопасности. Может кто-нибудь возьмёт для себя. Описание команд: 1. /seatbelt— пристегнуть/отстегнуть ремень; 2. /checkseatbelt — проверить на наличие ремня безопасности. (Необходимо добавить условие на то, что игрок состоит в полиции!) Командный процессор: dc_cmd + sscanf2. Автор: Tang. В public OnPlayerStateChange(playerid, newstate, oldstate) if(GetPVarInt(playerid, "SeatBelt") == 1 && newstate == PLAYER_STATE_ONFOOT) SetPVarInt(playerid, "SeatBelt", 0); Ко всем командам: CMD:seatbelt(playerid) { if(!IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, 0xADADADFF, !"Ошибка: Вы должны находиться за рулём транспортного средства!"); static const fmt_str0[] = "%s пристегнул(а) ремень безопасности", fmt_str1[] = "%s отстегнул(а) ремень безопасности"; new string[sizeof(fmt_str0) + ( - 2 + MAX_PLAYER_NAME )], playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); if(GetPVarInt(playerid, "SeatBelt") == 0) { format(string, sizeof(string), fmt_str0, playername); ProxDetector(5.0, playerid, string, 0xC6A2DEFF); SetPVarInt(playerid, "SeatBelt", 1); } else if(GetPVarInt(playerid, "SeatBelt") == 1) { format(string, sizeof(string), fmt_str1, playername); ProxDetector(5.0, playerid, string, 0xC6A2DEFF); SetPVarInt(playerid, "SeatBelt", 0); } return 1; } CMD:checkseatbelt(playerid, params[]) { if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, -1, !"Введите: /checkseatbelt [id игрока/часть имени]"); if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, 0xADADADFF, !"Ошибка: Игрок оффлайн!"); if(params[0] == playerid) return SendClientMessage(playerid, 0xADADADFF, !"Ошибка: Вы не можете проверить самого себя!"); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, 0xADADADFF, !"Ошибка: Вы должны быть на ногах!"); if(!IsPlayerInRangeOfPlayer(5.0, playerid, params[0])) return SendClientMessage(playerid, 0xADADADFF, !"Ошибка: Игрок должен находиться рядом с Вами!"); if(!IsPlayerInAnyVehicle(params[0]) && GetPlayerState(params[0]) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, 0xADADADFF, !"Ошибка: Игрок должен находиться за рулём транспортного средства!"); static const fmt_str[] = "%s проверил(а) на наличие ремня безопасности %s"; new string[sizeof(fmt_str) + ( - 2 + MAX_PLAYER_NAME ) * 2], playername[MAX_PLAYER_NAME], giveplayername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); GetPlayerName(params[0], giveplayername, sizeof(giveplayername)); format(string, sizeof(string), fmt_str, playername, giveplayername); ProxDetector(5.0, playerid, string, 0xC6A2DEFF); if(GetPVarInt(params[0], "SeatBelt") == 0) SendClientMessage(playerid, 0xFF0000FF, !"Ремень безопасности отстёгнут"); else if(GetPVarInt(params[0], "SeatBelt") == 1) SendClientMessage(playerid, 0x00DB00FF, !"Ремень безопасности пристёгнут"); return 1; } Если отсутствует ProxDetector, то в конец мода вставляем: stock ProxDetector(Float: range, playerid, string[], color) { new Float: x, Float: y, Float: z, i = GetMaxPlayers(), world = GetPlayerVirtualWorld(playerid); GetPlayerPos(playerid, x, y, z); do { if(0 == IsPlayerConnected(--i) || world != GetPlayerVirtualWorld(i) || GetPlayerDistanceFromPoint(i, x, y, z) > range) continue; SendClientMessage(i, color, string); } while(i > 0); return 1; } Если отсутствует IsPlayerInRangeOfPlayer, то в конец мода вставляем: stock IsPlayerInRangeOfPlayer(Float:radi, playerid, targetid) { if(IsPlayerConnected(playerid) && IsPlayerConnected(targetid) && !IsPlayerNPC(playerid) && !IsPlayerNPC(targetid)) { new Float:posx, Float:posy, Float:posz; GetPlayerPos(targetid, posx, posy, posz); if(IsPlayerInRangeOfPoint(playerid, radi, posx, posy, posz)) return 1; } return 0; } На этом всё, удачной компиляции!
  21. 1) В начала мода #include <mxINI> #define DIA_SET 0 #define DIA_VIB 1 #define DIA_SET1 2 #define VEHICLES 10 Ко всем new new Text3D:dt[VEHICLES]; В public OnGameModeInit(после всего транспорта): LoadNumbers(); В public OnPlayerCommandText: if (strcmp("/setnum", cmdtext, true, 7) == 0) { if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0x00FF00AA,"Вы не в транспорте!"); ShowPlayerDialog(playerid, DIA_VIB, DIALOG_STYLE_LIST, "Выбирите тип","3d номера\nОбычные","Выбрать","Отмена"); return 1; } В public OnDialogResponse: if(dialogid == DIA_VIB) { if(response) { if(listitem == 0) ShowPlayerDialog(playerid, DIA_SET1, DIALOG_STYLE_INPUT, "Номера(3d)","Введите номер для автомобиля","Установить","Отмена"); if(listitem == 1) ShowPlayerDialog(playerid, DIA_SET, DIALOG_STYLE_INPUT, "Номера(Обычные)","Введите номер для автомобиля","Установить","Отмена"); } } if(dialogid == DIA_SET1) { if(response) { if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIA_SET1, DIALOG_STYLE_INPUT, "Номера(3d)","Введите номер для автомобиля","Установить","Отмена"); new vid = GetPlayerVehicleID(playerid); new Str[10]; new File1 = ini_openFile("num(3d).ini"); format(Str,10,"%d",vid); ini_setString(File1,Str,inputtext); ini_closeFile(File1); Delete3DTextLabel(dt[vid]); dt[vid] = Create3DTextLabel(inputtext, 0xFFFFFFFF, 0.0, 0.0, 0.0, 50.0, 0, 1 ); Attach3DTextLabelToVehicle(dt[vid], vid, 0.0, 0.0, 1.0); } else { } } if(dialogid == DIA_SET) { if(response) { if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIA_SET, DIALOG_STYLE_INPUT, "Номера","Введите номер для автомобиля","Установить","Отмена"); new vid = GetPlayerVehicleID(playerid),Str[10], Float:x, Float:y, Float:z, Float:ang; new File = ini_openFile("num.ini"); format(Str,10,"%d",vid); ini_setString(File,Str,inputtext); ini_closeFile(File); SetVehicleNumberPlate(vid, inputtext); GetVehiclePos(vid, x,y,z); GetVehicleZAngle(vid,ang); SetVehicleToRespawn(vid); SetVehiclePos(vid,x,y,z); PutPlayerInVehicle(playerid,vid,0); SetVehicleZAngle(vid,ang); SendClientMessage(playerid, 0xFFFFFFFF, "Номера на автомобиль установлены!"); } else { } } В конец мода stock LoadNumbers() { new File = ini_openFile("num.ini"); new Str[10], Str2[25]; for(new i = 0; i < VEHICLES; i++) { format(Str,10,"%d",i); ini_getString(File,Str, Str2); SetVehicleNumberPlate(i, Str2); } ini_closeFile(File); new File1 = ini_openFile("num(3d).ini"); new Str3[10], Str4[25]; for(new i = 0; i < VEHICLES; i++) { format(Str3,10,"%d",i); ini_getString(File1,Str3, Str4); dt[i] = Create3DTextLabel(Str4, 0xFFFFFFFF, 0.0, 0.0, 0.0, 50.0, 0, 1 ); Attach3DTextLabelToVehicle(dt[i], i, 0.0, 0.0, 1.0); } ini_closeFile(File1); } Создайте в папке scriptfiles 2 файла с названиями: num.ini и num(3d).ini Автор данного мануала: Mike
  22. Привет народ. Пишу я тут мод с нуля и у меня при открытии Pawno вылезает ошибка "Failed to set data for "" ", жму ок и всё норм, павно открывается. Это жутко бесило. Так вот, может кто-то и знал, но я лично до этого момента не знал. Всё, что нужно сделать - это: В папке вашего мода открывать папку "Pawno", там открыть файл "settings.ini", там будет строка "FileAssoc" равная "1", так вот, мы эту "1" меняем на "0" и всё, проблема решена, должно получиться так: "FileAssoc=0". Такая ошибка и так легко исправляется, может кто-то знал, но я лично не знал, вот и решил создать эту тему, не ругайтесь сильно, кто знал В интернете по крайней мере я этого не находил, да, собстна говоря я и не искал P.S: Администрация, простите, если не туда тему создал. Не знал куда :3
  23. Smolin

    Anti-SobeitCrasher

    /* Anti-SobeitCrasher */ OnVehicleMod вызывается, когда игрок моденирнизирует своё авто через трюнинг салон. Поскольку в адаптациях отключено всё, что работает через scm кодинг, то данный колбэк может вызываться в них только читерским путем и никаким другим. Крашер основан на установке на машину невалидного тюнинга, из-за которого игра вылетает критической ошибкой. В данном случае мы сразу кикаем игрока, дабы он не продолжил крашить, а потом останавливаем (return 0) синхоронизацию установленного игроком тюнинга. Если это не сделать, тюнинг синхронизируется у игроков в зоне стрима машины - крашнет. public OnVehicleMod(playerid, vehicleid, componentid) { // кикаем игрока AntiCheatProtect(playerid, "s0beit crasher"); //обязательно, либо авто синхронизируется и будет уже фиолетово, что мы кого-то кикнули return 0; } Если скорость по осям х‚у больше 0.4. Можно поставить меньше, но я не рекомендовал бы. Иначе возможно будут ложные срабатывания например при сбивании машиной public OnPlayerUpdate(playerid) { /* Anti-FlyHack */ if(!IsPlayerInAnyVehicle(playerid)) { new Float:velocity[3]; GetPlayerVelocity(playerid, velocity[0], velocity[1], velocity[2]); if(velocity[0] > 0.4 || velocity[0] < -0.4 || velocity[1] > 0.4 || velocity[1] < -0.4) { AntiCheatProtect(playerid, "sobeit fly-hack"); } // Ось Z не считаем, ибо при полете (падении) она может быть даже больше 2.0 } return 1; }
  24. Надо добавить только: stock GetPlayerFraction(playerid) { new text[50]; switch(PlayerInfo[playerid][pMember]) { case 1: text = "МВД"; case 2: text = "ГИБДД"; case 3: text = "ФСБ"; case 4: text = "ВМФ"; case 5: text = "ВДВ"; case 6: text = "Администрация"; case 7: text = "СМИ"; case 8: text = "ЦРБ"; case 9: text = "Итальянская Мафия"; case 10: text = "ОПГ Тайфун"; case 11: text = "АТП"; case 12: text = "Испанцы"; case 13: text = "Пожарная Часть"; default: text = "--"; } return text; } И использовать надо GetPlayerFraction(playerid). Например у вас идет если игрок 1 фракции = полиция если игрок 2 фракции = фсб (примеры) То можно оптимизировать, и добавить это. Автор: Неизвестно Вырезал: С Connected В стоке мои фракции, меняйте на свои!
  25. Всем привет))) Сегодня, я расскажу вам, как сделать автоматический автосалон по пикапу на диалогах.\ Начнем: ко всем переменным добавляем new avtosalonavto; в OnGameModeInit добавляем avtosalonavto = CreatePickup(1318,23,x,y,z); в OnPlayerPickUpPickup добавляем if(pickupid == avtosalonavto) { ShowPlayerDialog(playerid, 9423 , DIALOG_STYLE_MSGBOX, "Автосалон","Добро пожаловать в автосалон, вам предстоит выбрать автомобиль, и оформить на него документы, наш работник поможет вам!" ,"Ок", ""); } Далее к диалогам добавляем if(dialogid == 9423) { if(response) { new carpla = 0; if(PlayerInfo[playerid][pMoney] < 600000) return SendClientMessage(playerid, COLOR_GRAD2, "У вас недостаточно средств для покупки!"); for(new i = 1; i <= AllCars; i++) { if(!strcmp(CarInfo[i][cOwner],Name(playerid),false,24)) carpla++; } if(PlayerInfo[playerid][pDonateRank] > 2) { if(carpla >= 3) return SendClientMessage(playerid, COLOR_GRAD2, "У вас слишком много машин"); } else if(carpla >= 1) return SendClientMessage(playerid, COLOR_GRAD2, "У вас слишком много машин"); ShowPlayerDialog(playerid, 9424 , DIALOG_STYLE_LIST, "Автосалон","Лада Приора{ff0000}(130т.)\nВАЗ 2106{ff0000}(100т.)\nМосквич{ff0000}(70т.)\nKIA{ff0000}(400т.)\nУАЗ{ff0000}(200т.)\nBMW x5{ff0000}(670т.)\nBMW 535{ff0000}(650т.)\nSkoda Octavia{ff0000}(475т.)\nMazda RX7{ff0000}(476т.)\nВАЗ 2104{ff0000}(100т.)\nГазель{ff0000}(150т.)\nВАЗ 2109{ff0000}(250т.)\nMercedes{ff0000}(600т.)\nVolkswagen{ff0000}(500т.)" ,"Ок", ""); } } if(dialogid == 9424) { if(response) { switch(listitem) { case 0: { new string[256]; new cariderid = 585; new veh = CreateVehicle(cariderid,2364.3542,-1779.9423,22.4540,179.8415,1,1, 60000*4); PutPlayerInVehicle(playerid,veh,0); SetPlayerCameraPos(playerid,2364.3542,-1779.9423,22.4540); AllCars++; GiveMoney(playerid,-130000); CarInfo[AllCars][cPx] = 5900.5049; CarInfo[AllCars][cPy] = -1609.8571; CarInfo[AllCars][cPz] = 0.5905; CarInfo[AllCars][cPa] = 274.1536; CarInfo[AllCars][cID] = veh; CarInfo[AllCars][cMod] = cariderid; CarInfo[AllCars][cCol1] = 0; CarInfo[AllCars][cCol2] = 0; format(CarInfo[AllCars][cOwner],24,"%s",Name(playerid)); CarInfo[AllCars][cLock] = 0; CarInfo[AllCars][cSpoiler] = 0; CarInfo[AllCars][cHood] = 0; CarInfo[AllCars][cSideskirt] = 0; CarInfo[AllCars][cNitro] = 0; CarInfo[AllCars][cLamps] = 0; CarInfo[AllCars][cExhaust] = 0; CarInfo[AllCars][cWheels] = 0; CarInfo[AllCars][cRoof] = 0; CarInfo[AllCars][cStereo] = 0; CarInfo[AllCars][cHydraulics] = 0; CarInfo[AllCars][cBullbar] = 0; CarInfo[AllCars][cRearBullbars] = 0; CarInfo[AllCars][cFrontSign] = 0; CarInfo[AllCars][cFrontBullbars] = 0; CarInfo[AllCars][cFrontBumper] = 0; CarInfo[AllCars][cRearBumper] = 0; CarInfo[AllCars][cVents] = 0; CarInfo[AllCars][cPaintJob] = -1; CarInfo[AllCars][cMileage] = 0.0; CarInfo[AllCars][cArest] = 0; format(CarInfo[AllCars][cPArest],32,"Nones"); format(CarInfo[AllCars][cNumber],64,"None"); CreateCar(AllCars); new carses = GetPlayerVehicleID(playerid); new iniOpen = ini_openFile("cars.cfg"); ini_setInteger(iniOpen, "AllCars", AllCars); ini_closeFile(iniOpen); SaveCar(GetRealID(carses)); format(string, sizeof(string), "{FFFFFF}(( Номера не установлены ))"); CarLabel[CarInfo[GetRealID(carses)][cID]] = Create3DTextLabel(string,0xFFFF00FF, 0.0, 0.0, 0.0,15.0,0,0); Attach3DTextLabelToVehicle(CarLabel[CarInfo[GetRealID(carses)][cID]] , CarInfo[GetRealID(carses)][cID], 0.0, 0.0, 1.1); TogglePlayerControllable(playerid,1); SendClientMessage(playerid, COLOR_RED, "Поздравляем с успешной покупкой авто! Перепaркуйте Авто Далеко от этого места"); SendClientMessage(playerid, COLOR_RED, "ВЫ ДОЛЖНЫ ПЕРЕПАРКОВАТЬ АВТО В ТЕЧЕНИИ 4-х МИНУТ ИЛИ ВАША МАШИНА ПРОПАДЕТ!(/park)"); } case 1: { new string[256]; new cariderid = 546; new veh = CreateVehicle(cariderid,2364.3542,-1779.9423,22.4540,179.8415,1,1, 60000*4); PutPlayerInVehicle(playerid,veh,0); SetPlayerCameraPos(playerid,2364.3542,-1779.9423,22.4540); AllCars++; GiveMoney(playerid,-100000); CarInfo[AllCars][cPx] = 5900.5049; CarInfo[AllCars][cPy] = -1609.8571; CarInfo[AllCars][cPz] = 0.5905; CarInfo[AllCars][cPa] = 274.1536; CarInfo[AllCars][cID] = veh; CarInfo[AllCars][cMod] = cariderid; CarInfo[AllCars][cCol1] = 0; CarInfo[AllCars][cCol2] = 0; format(CarInfo[AllCars][cOwner],24,"%s",Name(playerid)); CarInfo[AllCars][cLock] = 0; CarInfo[AllCars][cSpoiler] = 0; CarInfo[AllCars][cHood] = 0; CarInfo[AllCars][cSideskirt] = 0; CarInfo[AllCars][cNitro] = 0; CarInfo[AllCars][cLamps] = 0; CarInfo[AllCars][cExhaust] = 0; CarInfo[AllCars][cWheels] = 0; CarInfo[AllCars][cRoof] = 0; CarInfo[AllCars][cStereo] = 0; CarInfo[AllCars][cHydraulics] = 0; CarInfo[AllCars][cBullbar] = 0; CarInfo[AllCars][cRearBullbars] = 0; CarInfo[AllCars][cFrontSign] = 0; CarInfo[AllCars][cFrontBullbars] = 0; CarInfo[AllCars][cFrontBumper] = 0; CarInfo[AllCars][cRearBumper] = 0; CarInfo[AllCars][cVents] = 0; CarInfo[AllCars][cPaintJob] = -1; CarInfo[AllCars][cMileage] = 0.0; CarInfo[AllCars][cArest] = 0; format(CarInfo[AllCars][cPArest],32,"Nones"); format(CarInfo[AllCars][cNumber],64,"None"); CreateCar(AllCars); new carses = GetPlayerVehicleID(playerid); new iniOpen = ini_openFile("cars.cfg"); ini_setInteger(iniOpen, "AllCars", AllCars); ini_closeFile(iniOpen); SaveCar(GetRealID(carses)); format(string, sizeof(string), "{FFFFFF}(( Номера не установлены ))"); CarLabel[CarInfo[GetRealID(carses)][cID]] = Create3DTextLabel(string,0xFFFF00FF, 0.0, 0.0, 0.0,15.0,0,0); Attach3DTextLabelToVehicle(CarLabel[CarInfo[GetRealID(carses)][cID]] , CarInfo[GetRealID(carses)][cID], 0.0, 0.0, 1.1); TogglePlayerControllable(playerid,1); SendClientMessage(playerid, COLOR_RED, "Поздравляем с успешной покупкой авто! Перепaркуйте Авто Далеко от этого места"); SendClientMessage(playerid, COLOR_RED, "ВЫ ДОЛЖНЫ ПЕРЕПАРКОВАТЬ АВТО В ТЕЧЕНИИ 4-х МИНУТ ИЛИ ВАША МАШИНА ПРОПАДЕТ!(/park)"); } case 2: { new string[256]; new cariderid = 547; new veh = CreateVehicle(cariderid,2364.3542,-1779.9423,22.4540,179.8415,1,1, 60000*4); PutPlayerInVehicle(playerid,veh,0); SetPlayerCameraPos(playerid,2364.3542,-1779.9423,22.4540); AllCars++; GiveMoney(playerid,-70000); CarInfo[AllCars][cPx] = 5900.5049; CarInfo[AllCars][cPy] = -1609.8571; CarInfo[AllCars][cPz] = 0.5905; CarInfo[AllCars][cPa] = 274.1536; CarInfo[AllCars][cID] = veh; CarInfo[AllCars][cMod] = cariderid; CarInfo[AllCars][cCol1] = 0; CarInfo[AllCars][cCol2] = 0; format(CarInfo[AllCars][cOwner],24,"%s",Name(playerid)); CarInfo[AllCars][cLock] = 0; CarInfo[AllCars][cSpoiler] = 0; CarInfo[AllCars][cHood] = 0; CarInfo[AllCars][cSideskirt] = 0; CarInfo[AllCars][cNitro] = 0; CarInfo[AllCars][cLamps] = 0; CarInfo[AllCars][cExhaust] = 0; CarInfo[AllCars][cWheels] = 0; CarInfo[AllCars][cRoof] = 0; CarInfo[AllCars][cStereo] = 0; CarInfo[AllCars][cHydraulics] = 0; CarInfo[AllCars][cBullbar] = 0; CarInfo[AllCars][cRearBullbars] = 0; CarInfo[AllCars][cFrontSign] = 0; CarInfo[AllCars][cFrontBullbars] = 0; CarInfo[AllCars][cFrontBumper] = 0; CarInfo[AllCars][cRearBumper] = 0; CarInfo[AllCars][cVents] = 0; CarInfo[AllCars][cPaintJob] = -1; CarInfo[AllCars][cMileage] = 0.0; CarInfo[AllCars][cArest] = 0; format(CarInfo[AllCars][cPArest],32,"Nones"); format(CarInfo[AllCars][cNumber],64,"None"); CreateCar(AllCars); new carses = GetPlayerVehicleID(playerid); new iniOpen = ini_openFile("cars.cfg"); ini_setInteger(iniOpen, "AllCars", AllCars); ini_closeFile(iniOpen); SaveCar(GetRealID(carses)); format(string, sizeof(string), "{FFFFFF}(( Номера не установлены ))"); CarLabel[CarInfo[GetRealID(carses)][cID]] = Create3DTextLabel(string,0xFFFF00FF, 0.0, 0.0, 0.0,15.0,0,0); Attach3DTextLabelToVehicle(CarLabel[CarInfo[GetRealID(carses)][cID]] , CarInfo[GetRealID(carses)][cID], 0.0, 0.0, 1.1); TogglePlayerControllable(playerid,1); SendClientMessage(playerid, COLOR_RED, "Поздравляем с успешной покупкой авто! Перепaркуйте Авто Далеко от этого места"); SendClientMessage(playerid, COLOR_RED, "ВЫ ДОЛЖНЫ ПЕРЕПАРКОВАТЬ АВТО В ТЕЧЕНИИ 4-х МИНУТ ИЛИ ВАША МАШИНА ПРОПАДЕТ!(/park)"); } case 3: { new string[256]; new cariderid = 506; new veh = CreateVehicle(cariderid,2364.3542,-1779.9423,22.4540,179.8415,1,1, 60000*4); PutPlayerInVehicle(playerid,veh,0); SetPlayerCameraPos(playerid,2364.3542,-1779.9423,22.4540); AllCars++; GiveMoney(playerid,-400000); CarInfo[AllCars][cPx] = 5900.5049; CarInfo[AllCars][cPy] = -1609.8571; CarInfo[AllCars][cPz] = 0.5905; CarInfo[AllCars][cPa] = 274.1536; CarInfo[AllCars][cID] = veh; CarInfo[AllCars][cMod] = cariderid; CarInfo[AllCars][cCol1] = 0; CarInfo[AllCars][cCol2] = 0; format(CarInfo[AllCars][cOwner],24,"%s",Name(playerid)); CarInfo[AllCars][cLock] = 0; CarInfo[AllCars][cSpoiler] = 0; CarInfo[AllCars][cHood] = 0; CarInfo[AllCars][cSideskirt] = 0; CarInfo[AllCars][cNitro] = 0; CarInfo[AllCars][cLamps] = 0; CarInfo[AllCars][cExhaust] = 0; CarInfo[AllCars][cWheels] = 0; CarInfo[AllCars][cRoof] = 0; CarInfo[AllCars][cStereo] = 0; CarInfo[AllCars][cHydraulics] = 0; CarInfo[AllCars][cBullbar] = 0; CarInfo[AllCars][cRearBullbars] = 0; CarInfo[AllCars][cFrontSign] = 0; CarInfo[AllCars][cFrontBullbars] = 0; CarInfo[AllCars][cFrontBumper] = 0; CarInfo[AllCars][cRearBumper] = 0; CarInfo[AllCars][cVents] = 0; CarInfo[AllCars][cPaintJob] = -1; CarInfo[AllCars][cMileage] = 0.0; CarInfo[AllCars][cArest] = 0; format(CarInfo[AllCars][cPArest],32,"Nones"); format(CarInfo[AllCars][cNumber],64,"None"); CreateCar(AllCars); new carses = GetPlayerVehicleID(playerid); new iniOpen = ini_openFile("cars.cfg"); ini_setInteger(iniOpen, "AllCars", AllCars); ini_closeFile(iniOpen); SaveCar(GetRealID(carses)); format(string, sizeof(string), "{FFFFFF}(( Номера не установлены ))"); CarLabel[CarInfo[GetRealID(carses)][cID]] = Create3DTextLabel(string,0xFFFF00FF, 0.0, 0.0, 0.0,15.0,0,0); Attach3DTextLabelToVehicle(CarLabel[CarInfo[GetRealID(carses)][cID]] , CarInfo[GetRealID(carses)][cID], 0.0, 0.0, 1.1); TogglePlayerControllable(playerid,1); SendClientMessage(playerid, COLOR_RED, "Поздравляем с успешной покупкой авто! Перепaркуйте Авто Далеко от этого места"); SendClientMessage(playerid, COLOR_RED, "ВЫ ДОЛЖНЫ ПЕРЕПАРКОВАТЬ АВТО В ТЕЧЕНИИ 4-х МИНУТ ИЛИ ВАША МАШИНА ПРОПАДЕТ!(/park)"); } case 4: { new string[256]; new cariderid = 508; new veh = CreateVehicle(cariderid,2364.3542,-1779.9423,22.4540,179.8415,1,1, 60000*4); PutPlayerInVehicle(playerid,veh,0); SetPlayerCameraPos(playerid,2364.3542,-1779.9423,22.4540); AllCars++; GiveMoney(playerid,-200000); CarInfo[AllCars][cPx] = 5900.5049; CarInfo[AllCars][cPy] = -1609.8571; CarInfo[AllCars][cPz] = 0.5905; CarInfo[AllCars][cPa] = 274.1536; CarInfo[AllCars][cID] = veh; CarInfo[AllCars][cMod] = cariderid; CarInfo[AllCars][cCol1] = 0; CarInfo[AllCars][cCol2] = 0; format(CarInfo[AllCars][cOwner],24,"%s",Name(playerid)); CarInfo[AllCars][cLock] = 0; CarInfo[AllCars][cSpoiler] = 0; CarInfo[AllCars][cHood] = 0; CarInfo[AllCars][cSideskirt] = 0; CarInfo[AllCars][cNitro] = 0; CarInfo[AllCars][cLamps] = 0; CarInfo[AllCars][cExhaust] = 0; CarInfo[AllCars][cWheels] = 0; CarInfo[AllCars][cRoof] = 0; CarInfo[AllCars][cStereo] = 0; CarInfo[AllCars][cHydraulics] = 0; CarInfo[AllCars][cBullbar] = 0; CarInfo[AllCars][cRearBullbars] = 0; CarInfo[AllCars][cFrontSign] = 0; CarInfo[AllCars][cFrontBullbars] = 0; CarInfo[AllCars][cFrontBumper] = 0; CarInfo[AllCars][cRearBumper] = 0; CarInfo[AllCars][cVents] = 0; CarInfo[AllCars][cPaintJob] = -1; CarInfo[AllCars][cMileage] = 0.0; CarInfo[AllCars][cArest] = 0; format(CarInfo[AllCars][cPArest],32,"Nones"); format(CarInfo[AllCars][cNumber],64,"None"); CreateCar(AllCars); new carses = GetPlayerVehicleID(playerid); new iniOpen = ini_openFile("cars.cfg"); ini_setInteger(iniOpen, "AllCars", AllCars); ini_closeFile(iniOpen); SaveCar(GetRealID(carses)); format(string, sizeof(string), "{FFFFFF}(( Номера не установлены ))"); CarLabel[CarInfo[GetRealID(carses)][cID]] = Create3DTextLabel(string,0xFFFF00FF, 0.0, 0.0, 0.0,15.0,0,0); Attach3DTextLabelToVehicle(CarLabel[CarInfo[GetRealID(carses)][cID]] , CarInfo[GetRealID(carses)][cID], 0.0, 0.0, 1.1); TogglePlayerControllable(playerid,1); SendClientMessage(playerid, COLOR_RED, "Поздравляем с успешной покупкой авто! Перепaркуйте Авто Далеко от этого места"); SendClientMessage(playerid, COLOR_RED, "ВЫ ДОЛЖНЫ ПЕРЕПАРКОВАТЬ АВТО В ТЕЧЕНИИ 4-х МИНУТ ИЛИ ВАША МАШИНА ПРОПАДЕТ!(/park)"); } case 5: { new string[256]; new cariderid = 400; new veh = CreateVehicle(cariderid,2364.3542,-1779.9423,22.4540,179.8415,1,1, 60000*4); PutPlayerInVehicle(playerid,veh,0); SetPlayerCameraPos(playerid,2364.3542,-1779.9423,22.4540); AllCars++; GiveMoney(playerid,-670000); CarInfo[AllCars][cPx] = 5900.5049; CarInfo[AllCars][cPy] = -1609.8571; CarInfo[AllCars][cPz] = 0.5905; CarInfo[AllCars][cPa] = 274.1536; CarInfo[AllCars][cID] = veh; CarInfo[AllCars][cMod] = cariderid; CarInfo[AllCars][cCol1] = 0; CarInfo[AllCars][cCol2] = 0; format(CarInfo[AllCars][cOwner],24,"%s",Name(playerid)); CarInfo[AllCars][cLock] = 0; CarInfo[AllCars][cSpoiler] = 0; CarInfo[AllCars][cHood] = 0; CarInfo[AllCars][cSideskirt] = 0; CarInfo[AllCars][cNitro] = 0; CarInfo[AllCars][cLamps] = 0; CarInfo[AllCars][cExhaust] = 0; CarInfo[AllCars][cWheels] = 0; CarInfo[AllCars][cRoof] = 0; CarInfo[AllCars][cStereo] = 0; CarInfo[AllCars][cHydraulics] = 0; CarInfo[AllCars][cBullbar] = 0; CarInfo[AllCars][cRearBullbars] = 0; CarInfo[AllCars][cFrontSign] = 0; CarInfo[AllCars][cFrontBullbars] = 0; CarInfo[AllCars][cFrontBumper] = 0; CarInfo[AllCars][cRearBumper] = 0; CarInfo[AllCars][cVents] = 0; CarInfo[AllCars][cPaintJob] = -1; CarInfo[AllCars][cMileage] = 0.0; CarInfo[AllCars][cArest] = 0; format(CarInfo[AllCars][cPArest],32,"Nones"); format(CarInfo[AllCars][cNumber],64,"None"); CreateCar(AllCars); new carses = GetPlayerVehicleID(playerid); new iniOpen = ini_openFile("cars.cfg"); ini_setInteger(iniOpen, "AllCars", AllCars); ini_closeFile(iniOpen); SaveCar(GetRealID(carses)); format(string, sizeof(string), "{FFFFFF}(( Номера не установлены ))"); CarLabel[CarInfo[GetRealID(carses)][cID]] = Create3DTextLabel(string,0xFFFF00FF, 0.0, 0.0, 0.0,15.0,0,0); Attach3DTextLabelToVehicle(CarLabel[CarInfo[GetRealID(carses)][cID]] , CarInfo[GetRealID(carses)][cID], 0.0, 0.0, 1.1); TogglePlayerControllable(playerid,1); SendClientMessage(playerid, COLOR_RED, "Поздравляем с успешной покупкой авто! Перепaркуйте Авто Далеко от этого места"); SendClientMessage(playerid, COLOR_RED, "ВЫ ДОЛЖНЫ ПЕРЕПАРКОВАТЬ АВТО В ТЕЧЕНИИ 4-х МИНУТ ИЛИ ВАША МАШИНА ПРОПАДЕТ!(/park)"); } case 6: { new string[256]; new cariderid = 466; new veh = CreateVehicle(cariderid,2364.3542,-1779.9423,22.4540,179.8415,1,1, 60000*4); PutPlayerInVehicle(playerid,veh,0); SetPlayerCameraPos(playerid,2364.3542,-1779.9423,22.4540); AllCars++; GiveMoney(playerid,-650000); CarInfo[AllCars][cPx] = 5900.5049; CarInfo[AllCars][cPy] = -1609.8571; CarInfo[AllCars][cPz] = 0.5905; CarInfo[AllCars][cPa] = 274.1536; CarInfo[AllCars][cID] = veh; CarInfo[AllCars][cMod] = cariderid; CarInfo[AllCars][cCol1] = 0; CarInfo[AllCars][cCol2] = 0; format(CarInfo[AllCars][cOwner],24,"%s",Name(playerid)); CarInfo[AllCars][cLock] = 0; CarInfo[AllCars][cSpoiler] = 0; CarInfo[AllCars][cHood] = 0; CarInfo[AllCars][cSideskirt] = 0; CarInfo[AllCars][cNitro] = 0; CarInfo[AllCars][cLamps] = 0; CarInfo[AllCars][cExhaust] = 0; CarInfo[AllCars][cWheels] = 0; CarInfo[AllCars][cRoof] = 0; CarInfo[AllCars][cStereo] = 0; CarInfo[AllCars][cHydraulics] = 0; CarInfo[AllCars][cBullbar] = 0; CarInfo[AllCars][cRearBullbars] = 0; CarInfo[AllCars][cFrontSign] = 0; CarInfo[AllCars][cFrontBullbars] = 0; CarInfo[AllCars][cFrontBumper] = 0; CarInfo[AllCars][cRearBumper] = 0; CarInfo[AllCars][cVents] = 0; CarInfo[AllCars][cPaintJob] = -1; CarInfo[AllCars][cMileage] = 0.0; CarInfo[AllCars][cArest] = 0; format(CarInfo[AllCars][cPArest],32,"Nones"); format(CarInfo[AllCars][cNumber],64,"None"); CreateCar(AllCars); new carses = GetPlayerVehicleID(playerid); new iniOpen = ini_openFile("cars.cfg"); ini_setInteger(iniOpen, "AllCars", AllCars); ini_closeFile(iniOpen); SaveCar(GetRealID(carses)); format(string, sizeof(string), "{FFFFFF}(( Номера не установлены ))"); CarLabel[CarInfo[GetRealID(carses)][cID]] = Create3DTextLabel(string,0xFFFF00FF, 0.0, 0.0, 0.0,15.0,0,0); Attach3DTextLabelToVehicle(CarLabel[CarInfo[GetRealID(carses)][cID]] , CarInfo[GetRealID(carses)][cID], 0.0, 0.0, 1.1); TogglePlayerControllable(playerid,1); SendClientMessage(playerid, COLOR_RED, "Поздравляем с успешной покупкой авто! Перепaркуйте Авто Далеко от этого места"); SendClientMessage(playerid, COLOR_RED, "ВЫ ДОЛЖНЫ ПЕРЕПАРКОВАТЬ АВТО В ТЕЧЕНИИ 4-х МИНУТ ИЛИ ВАША МАШИНА ПРОПАДЕТ!(/park)"); } case 7: { new string[256]; new cariderid = 475; new veh = CreateVehicle(cariderid,2364.3542,-1779.9423,22.4540,179.8415,1,1, 60000*4); PutPlayerInVehicle(playerid,veh,0); SetPlayerCameraPos(playerid,2364.3542,-1779.9423,22.4540); AllCars++; GiveMoney(playerid,-475000); CarInfo[AllCars][cPx] = 5900.5049; CarInfo[AllCars][cPy] = -1609.8571; CarInfo[AllCars][cPz] = 0.5905; CarInfo[AllCars][cPa] = 274.1536; CarInfo[AllCars][cID] = veh; CarInfo[AllCars][cMod] = cariderid; CarInfo[AllCars][cCol1] = 0; CarInfo[AllCars][cCol2] = 0; format(CarInfo[AllCars][cOwner],24,"%s",Name(playerid)); CarInfo[AllCars][cLock] = 0; CarInfo[AllCars][cSpoiler] = 0; CarInfo[AllCars][cHood] = 0; CarInfo[AllCars][cSideskirt] = 0; CarInfo[AllCars][cNitro] = 0; CarInfo[AllCars][cLamps] = 0; CarInfo[AllCars][cExhaust] = 0; CarInfo[AllCars][cWheels] = 0; CarInfo[AllCars][cRoof] = 0; CarInfo[AllCars][cStereo] = 0; CarInfo[AllCars][cHydraulics] = 0; CarInfo[AllCars][cBullbar] = 0; CarInfo[AllCars][cRearBullbars] = 0; CarInfo[AllCars][cFrontSign] = 0; CarInfo[AllCars][cFrontBullbars] = 0; CarInfo[AllCars][cFrontBumper] = 0; CarInfo[AllCars][cRearBumper] = 0; CarInfo[AllCars][cVents] = 0; CarInfo[AllCars][cPaintJob] = -1; CarInfo[AllCars][cMileage] = 0.0; CarInfo[AllCars][cArest] = 0; format(CarInfo[AllCars][cPArest],32,"Nones"); format(CarInfo[AllCars][cNumber],64,"None"); CreateCar(AllCars); new carses = GetPlayerVehicleID(playerid); new iniOpen = ini_openFile("cars.cfg"); ini_setInteger(iniOpen, "AllCars", AllCars); ini_closeFile(iniOpen); SaveCar(GetRealID(carses)); format(string, sizeof(string), "{FFFFFF}(( Номера не установлены ))"); CarLabel[CarInfo[GetRealID(carses)][cID]] = Create3DTextLabel(string,0xFFFF00FF, 0.0, 0.0, 0.0,15.0,0,0); Attach3DTextLabelToVehicle(CarLabel[CarInfo[GetRealID(carses)][cID]] , CarInfo[GetRealID(carses)][cID], 0.0, 0.0, 1.1); TogglePlayerControllable(playerid,1); SendClientMessage(playerid, COLOR_RED, "Поздравляем с успешной покупкой авто! Перепaркуйте Авто Далеко от этого места"); SendClientMessage(playerid, COLOR_RED, "ВЫ ДОЛЖНЫ ПЕРЕПАРКОВАТЬ АВТО В ТЕЧЕНИИ 4-х МИНУТ ИЛИ ВАША МАШИНА ПРОПАДЕТ!(/park)"); } case 8: { new string[256]; new cariderid = 477; new veh = CreateVehicle(cariderid,2364.3542,-1779.9423,22.4540,179.8415,1,1, 60000*4); PutPlayerInVehicle(playerid,veh,0); SetPlayerCameraPos(playerid,2364.3542,-1779.9423,22.4540); AllCars++; GiveMoney(playerid,-476000); CarInfo[AllCars][cPx] = 5900.5049; CarInfo[AllCars][cPy] = -1609.8571; CarInfo[AllCars][cPz] = 0.5905; CarInfo[AllCars][cPa] = 274.1536; CarInfo[AllCars][cID] = veh; CarInfo[AllCars][cMod] = cariderid; CarInfo[AllCars][cCol1] = 0; CarInfo[AllCars][cCol2] = 0; format(CarInfo[AllCars][cOwner],24,"%s",Name(playerid)); CarInfo[AllCars][cLock] = 0; CarInfo[AllCars][cSpoiler] = 0; CarInfo[AllCars][cHood] = 0; CarInfo[AllCars][cSideskirt] = 0; CarInfo[AllCars][cNitro] = 0; CarInfo[AllCars][cLamps] = 0; CarInfo[AllCars][cExhaust] = 0; CarInfo[AllCars][cWheels] = 0; CarInfo[AllCars][cRoof] = 0; CarInfo[AllCars][cStereo] = 0; CarInfo[AllCars][cHydraulics] = 0; CarInfo[AllCars][cBullbar] = 0; CarInfo[AllCars][cRearBullbars] = 0; CarInfo[AllCars][cFrontSign] = 0; CarInfo[AllCars][cFrontBullbars] = 0; CarInfo[AllCars][cFrontBumper] = 0; CarInfo[AllCars][cRearBumper] = 0; CarInfo[AllCars][cVents] = 0; CarInfo[AllCars][cPaintJob] = -1; CarInfo[AllCars][cMileage] = 0.0; CarInfo[AllCars][cArest] = 0; format(CarInfo[AllCars][cPArest],32,"Nones"); format(CarInfo[AllCars][cNumber],64,"None"); CreateCar(AllCars); new carses = GetPlayerVehicleID(playerid); new iniOpen = ini_openFile("cars.cfg"); ini_setInteger(iniOpen, "AllCars", AllCars); ini_closeFile(iniOpen); SaveCar(GetRealID(carses)); format(string, sizeof(string), "{FFFFFF}(( Номера не установлены ))"); CarLabel[CarInfo[GetRealID(carses)][cID]] = Create3DTextLabel(string,0xFFFF00FF, 0.0, 0.0, 0.0,15.0,0,0); Attach3DTextLabelToVehicle(CarLabel[CarInfo[GetRealID(carses)][cID]] , CarInfo[GetRealID(carses)][cID], 0.0, 0.0, 1.1); TogglePlayerControllable(playerid,1); SendClientMessage(playerid, COLOR_RED, "Поздравляем с успешной покупкой авто! Перепaркуйте Авто Далеко от этого места"); SendClientMessage(playerid, COLOR_RED, "ВЫ ДОЛЖНЫ ПЕРЕПАРКОВАТЬ АВТО В ТЕЧЕНИИ 4-х МИНУТ ИЛИ ВАША МАШИНА ПРОПАДЕТ!(/park)"); } case 9: { new string[256]; new cariderid = 479; new veh = CreateVehicle(cariderid,2364.3542,-1779.9423,22.4540,179.8415,1,1, 60000*4); PutPlayerInVehicle(playerid,veh,0); SetPlayerCameraPos(playerid,2364.3542,-1779.9423,22.4540); AllCars++; GiveMoney(playerid,-100000); CarInfo[AllCars][cPx] = 5900.5049; CarInfo[AllCars][cPy] = -1609.8571; CarInfo[AllCars][cPz] = 0.5905; CarInfo[AllCars][cPa] = 274.1536; CarInfo[AllCars][cID] = veh; CarInfo[AllCars][cMod] = cariderid; CarInfo[AllCars][cCol1] = 0; CarInfo[AllCars][cCol2] = 0; format(CarInfo[AllCars][cOwner],24,"%s",Name(playerid)); CarInfo[AllCars][cLock] = 0; CarInfo[AllCars][cSpoiler] = 0; CarInfo[AllCars][cHood] = 0; CarInfo[AllCars][cSideskirt] = 0; CarInfo[AllCars][cNitro] = 0; CarInfo[AllCars][cLamps] = 0; CarInfo[AllCars][cExhaust] = 0; CarInfo[AllCars][cWheels] = 0; CarInfo[AllCars][cRoof] = 0; CarInfo[AllCars][cStereo] = 0; CarInfo[AllCars][cHydraulics] = 0; CarInfo[AllCars][cBullbar] = 0; CarInfo[AllCars][cRearBullbars] = 0; CarInfo[AllCars][cFrontSign] = 0; CarInfo[AllCars][cFrontBullbars] = 0; CarInfo[AllCars][cFrontBumper] = 0; CarInfo[AllCars][cRearBumper] = 0; CarInfo[AllCars][cVents] = 0; CarInfo[AllCars][cPaintJob] = -1; CarInfo[AllCars][cMileage] = 0.0; CarInfo[AllCars][cArest] = 0; format(CarInfo[AllCars][cPArest],32,"Nones"); format(CarInfo[AllCars][cNumber],64,"None"); CreateCar(AllCars); new carses = GetPlayerVehicleID(playerid); new iniOpen = ini_openFile("cars.cfg"); ini_setInteger(iniOpen, "AllCars", AllCars); ini_closeFile(iniOpen); SaveCar(GetRealID(carses)); format(string, sizeof(string), "{FFFFFF}(( Номера не установлены ))"); CarLabel[CarInfo[GetRealID(carses)][cID]] = Create3DTextLabel(string,0xFFFF00FF, 0.0, 0.0, 0.0,15.0,0,0); Attach3DTextLabelToVehicle(CarLabel[CarInfo[GetRealID(carses)][cID]] , CarInfo[GetRealID(carses)][cID], 0.0, 0.0, 1.1); TogglePlayerControllable(playerid,1); SendClientMessage(playerid, COLOR_RED, "Поздравляем с успешной покупкой авто! Перепaркуйте Авто Далеко от этого места"); SendClientMessage(playerid, COLOR_RED, "ВЫ ДОЛЖНЫ ПЕРЕПАРКОВАТЬ АВТО В ТЕЧЕНИИ 4-х МИНУТ ИЛИ ВАША МАШИНА ПРОПАДЕТ!(/park)"); } case 10: { new string[256]; new cariderid = 482; new veh = CreateVehicle(cariderid,2364.3542,-1779.9423,22.4540,179.8415,1,1, 60000*4); PutPlayerInVehicle(playerid,veh,0); SetPlayerCameraPos(playerid,2364.3542,-1779.9423,22.4540); AllCars++; GiveMoney(playerid,-150000); CarInfo[AllCars][cPx] = 5900.5049; CarInfo[AllCars][cPy] = -1609.8571; CarInfo[AllCars][cPz] = 0.5905; CarInfo[AllCars][cPa] = 274.1536; CarInfo[AllCars][cID] = veh; CarInfo[AllCars][cMod] = cariderid; CarInfo[AllCars][cCol1] = 0; CarInfo[AllCars][cCol2] = 0; format(CarInfo[AllCars][cOwner],24,"%s",Name(playerid)); CarInfo[AllCars][cLock] = 0; CarInfo[AllCars][cSpoiler] = 0; CarInfo[AllCars][cHood] = 0; CarInfo[AllCars][cSideskirt] = 0; CarInfo[AllCars][cNitro] = 0; CarInfo[AllCars][cLamps] = 0; CarInfo[AllCars][cExhaust] = 0; CarInfo[AllCars][cWheels] = 0; CarInfo[AllCars][cRoof] = 0; CarInfo[AllCars][cStereo] = 0; CarInfo[AllCars][cHydraulics] = 0; CarInfo[AllCars][cBullbar] = 0; CarInfo[AllCars][cRearBullbars] = 0; CarInfo[AllCars][cFrontSign] = 0; CarInfo[AllCars][cFrontBullbars] = 0; CarInfo[AllCars][cFrontBumper] = 0; CarInfo[AllCars][cRearBumper] = 0; CarInfo[AllCars][cVents] = 0; CarInfo[AllCars][cPaintJob] = -1; CarInfo[AllCars][cMileage] = 0.0; CarInfo[AllCars][cArest] = 0; format(CarInfo[AllCars][cPArest],32,"Nones"); format(CarInfo[AllCars][cNumber],64,"None"); CreateCar(AllCars); new carses = GetPlayerVehicleID(playerid); new iniOpen = ini_openFile("cars.cfg"); ini_setInteger(iniOpen, "AllCars", AllCars); ini_closeFile(iniOpen); SaveCar(GetRealID(carses)); format(string, sizeof(string), "{FFFFFF}(( Номера не установлены ))"); CarLabel[CarInfo[GetRealID(carses)][cID]] = Create3DTextLabel(string,0xFFFF00FF, 0.0, 0.0, 0.0,15.0,0,0); Attach3DTextLabelToVehicle(CarLabel[CarInfo[GetRealID(carses)][cID]] , CarInfo[GetRealID(carses)][cID], 0.0, 0.0, 1.1); TogglePlayerControllable(playerid,1); SendClientMessage(playerid, COLOR_RED, "Поздравляем с успешной покупкой авто! Перепaркуйте Авто Далеко от этого места"); SendClientMessage(playerid, COLOR_RED, "ВЫ ДОЛЖНЫ ПЕРЕПАРКОВАТЬ АВТО В ТЕЧЕНИИ 4-х МИНУТ ИЛИ ВАША МАШИНА ПРОПАДЕТ!(/park)"); } case 11: { new string[256]; new cariderid = 492; new veh = CreateVehicle(cariderid,2364.3542,-1779.9423,22.4540,179.8415,1,1, 60000*4); PutPlayerInVehicle(playerid,veh,0); SetPlayerCameraPos(playerid,2364.3542,-1779.9423,22.4540); AllCars++; GiveMoney(playerid,-250000); CarInfo[AllCars][cPx] = 5900.5049; CarInfo[AllCars][cPy] = -1609.8571; CarInfo[AllCars][cPz] = 0.5905; CarInfo[AllCars][cPa] = 274.1536; CarInfo[AllCars][cID] = veh; CarInfo[AllCars][cMod] = cariderid; CarInfo[AllCars][cCol1] = 0; CarInfo[AllCars][cCol2] = 0; format(CarInfo[AllCars][cOwner],24,"%s",Name(playerid)); CarInfo[AllCars][cLock] = 0; CarInfo[AllCars][cSpoiler] = 0; CarInfo[AllCars][cHood] = 0; CarInfo[AllCars][cSideskirt] = 0; CarInfo[AllCars][cNitro] = 0; CarInfo[AllCars][cLamps] = 0; CarInfo[AllCars][cExhaust] = 0; CarInfo[AllCars][cWheels] = 0; CarInfo[AllCars][cRoof] = 0; CarInfo[AllCars][cStereo] = 0; CarInfo[AllCars][cHydraulics] = 0; CarInfo[AllCars][cBullbar] = 0; CarInfo[AllCars][cRearBullbars] = 0; CarInfo[AllCars][cFrontSign] = 0; CarInfo[AllCars][cFrontBullbars] = 0; CarInfo[AllCars][cFrontBumper] = 0; CarInfo[AllCars][cRearBumper] = 0; CarInfo[AllCars][cVents] = 0; CarInfo[AllCars][cPaintJob] = -1; CarInfo[AllCars][cMileage] = 0.0; CarInfo[AllCars][cArest] = 0; format(CarInfo[AllCars][cPArest],32,"Nones"); format(CarInfo[AllCars][cNumber],64,"None"); CreateCar(AllCars); new carses = GetPlayerVehicleID(playerid); new iniOpen = ini_openFile("cars.cfg"); ini_setInteger(iniOpen, "AllCars", AllCars); ini_closeFile(iniOpen); SaveCar(GetRealID(carses)); format(string, sizeof(string), "{FFFFFF}(( Номера не установлены ))"); CarLabel[CarInfo[GetRealID(carses)][cID]] = Create3DTextLabel(string,0xFFFF00FF, 0.0, 0.0, 0.0,15.0,0,0); Attach3DTextLabelToVehicle(CarLabel[CarInfo[GetRealID(carses)][cID]] , CarInfo[GetRealID(carses)][cID], 0.0, 0.0, 1.1); TogglePlayerControllable(playerid,1); SendClientMessage(playerid, COLOR_RED, "Поздравляем с успешной покупкой авто! Перепaркуйте Авто Далеко от этого места"); SendClientMessage(playerid, COLOR_RED, "ВЫ ДОЛЖНЫ ПЕРЕПАРКОВАТЬ АВТО В ТЕЧЕНИИ 4-х МИНУТ ИЛИ ВАША МАШИНА ПРОПАДЕТ!(/park)"); } case 12: { new string[256]; new cariderid = 421; new veh = CreateVehicle(cariderid,2364.3542,-1779.9423,22.4540,179.8415,1,1, 60000*4); PutPlayerInVehicle(playerid,veh,0); SetPlayerCameraPos(playerid,2364.3542,-1779.9423,22.4540); AllCars++; GiveMoney(playerid,-600000); CarInfo[AllCars][cPx] = 5900.5049; CarInfo[AllCars][cPy] = -1609.8571; CarInfo[AllCars][cPz] = 0.5905; CarInfo[AllCars][cPa] = 274.1536; CarInfo[AllCars][cID] = veh; CarInfo[AllCars][cMod] = cariderid; CarInfo[AllCars][cCol1] = 0; CarInfo[AllCars][cCol2] = 0; format(CarInfo[AllCars][cOwner],24,"%s",Name(playerid)); CarInfo[AllCars][cLock] = 0; CarInfo[AllCars][cSpoiler] = 0; CarInfo[AllCars][cHood] = 0; CarInfo[AllCars][cSideskirt] = 0; CarInfo[AllCars][cNitro] = 0; CarInfo[AllCars][cLamps] = 0; CarInfo[AllCars][cExhaust] = 0; CarInfo[AllCars][cWheels] = 0; CarInfo[AllCars][cRoof] = 0; CarInfo[AllCars][cStereo] = 0; CarInfo[AllCars][cHydraulics] = 0; CarInfo[AllCars][cBullbar] = 0; CarInfo[AllCars][cRearBullbars] = 0; CarInfo[AllCars][cFrontSign] = 0; CarInfo[AllCars][cFrontBullbars] = 0; CarInfo[AllCars][cFrontBumper] = 0; CarInfo[AllCars][cRearBumper] = 0; CarInfo[AllCars][cVents] = 0; CarInfo[AllCars][cPaintJob] = -1; CarInfo[AllCars][cMileage] = 0.0; CarInfo[AllCars][cArest] = 0; format(CarInfo[AllCars][cPArest],32,"Nones"); format(CarInfo[AllCars][cNumber],64,"None"); CreateCar(AllCars); new carses = GetPlayerVehicleID(playerid); new iniOpen = ini_openFile("cars.cfg"); ini_setInteger(iniOpen, "AllCars", AllCars); ini_closeFile(iniOpen); SaveCar(GetRealID(carses)); format(string, sizeof(string), "{FFFFFF}(( Номера не установлены ))"); CarLabel[CarInfo[GetRealID(carses)][cID]] = Create3DTextLabel(string,0xFFFF00FF, 0.0, 0.0, 0.0,15.0,0,0); Attach3DTextLabelToVehicle(CarLabel[CarInfo[GetRealID(carses)][cID]] , CarInfo[GetRealID(carses)][cID], 0.0, 0.0, 1.1); TogglePlayerControllable(playerid,1); SendClientMessage(playerid, COLOR_RED, "Поздравляем с успешной покупкой авто! Перепaркуйте Авто Далеко от этого места"); SendClientMessage(playerid, COLOR_RED, "ВЫ ДОЛЖНЫ ПЕРЕПАРКОВАТЬ АВТО В ТЕЧЕНИИ 4-х МИНУТ ИЛИ ВАША МАШИНА ПРОПАДЕТ!(/park)"); } case 13: { new string[256]; new cariderid = 491; new veh = CreateVehicle(cariderid,2364.3542,-1779.9423,22.4540,179.8415,1,1, 60000*4); PutPlayerInVehicle(playerid,veh,0); SetPlayerCameraPos(playerid,2364.3542,-1779.9423,22.4540); AllCars++; GiveMoney(playerid,-500000); CarInfo[AllCars][cPx] = 5900.5049; CarInfo[AllCars][cPy] = -1609.8571; CarInfo[AllCars][cPz] = 0.5905; CarInfo[AllCars][cPa] = 274.1536; CarInfo[AllCars][cID] = veh; CarInfo[AllCars][cMod] = cariderid; CarInfo[AllCars][cCol1] = 0; CarInfo[AllCars][cCol2] = 0; format(CarInfo[AllCars][cOwner],24,"%s",Name(playerid)); CarInfo[AllCars][cLock] = 0; CarInfo[AllCars][cSpoiler] = 0; CarInfo[AllCars][cHood] = 0; CarInfo[AllCars][cSideskirt] = 0; CarInfo[AllCars][cNitro] = 0; CarInfo[AllCars][cLamps] = 0; CarInfo[AllCars][cExhaust] = 0; CarInfo[AllCars][cWheels] = 0; CarInfo[AllCars][cRoof] = 0; CarInfo[AllCars][cStereo] = 0; CarInfo[AllCars][cHydraulics] = 0; CarInfo[AllCars][cBullbar] = 0; CarInfo[AllCars][cRearBullbars] = 0; CarInfo[AllCars][cFrontSign] = 0; CarInfo[AllCars][cFrontBullbars] = 0; CarInfo[AllCars][cFrontBumper] = 0; CarInfo[AllCars][cRearBumper] = 0; CarInfo[AllCars][cVents] = 0; CarInfo[AllCars][cPaintJob] = -1; CarInfo[AllCars][cMileage] = 0.0; CarInfo[AllCars][cArest] = 0; format(CarInfo[AllCars][cPArest],32,"Nones"); format(CarInfo[AllCars][cNumber],64,"None"); CreateCar(AllCars); new carses = GetPlayerVehicleID(playerid); new iniOpen = ini_openFile("cars.cfg"); ini_setInteger(iniOpen, "AllCars", AllCars); ini_closeFile(iniOpen); SaveCar(GetRealID(carses)); format(string, sizeof(string), "{FFFFFF}(( Номера не установлены ))"); CarLabel[CarInfo[GetRealID(carses)][cID]] = Create3DTextLabel(string,0xFFFF00FF, 0.0, 0.0, 0.0,15.0,0,0); Attach3DTextLabelToVehicle(CarLabel[CarInfo[GetRealID(carses)][cID]] , CarInfo[GetRealID(carses)][cID], 0.0, 0.0, 1.1); TogglePlayerControllable(playerid,1); SendClientMessage(playerid, COLOR_RED, "Поздравляем с успешной покупкой авто! Перепaркуйте Авто Далеко от этого места"); SendClientMessage(playerid, COLOR_RED, "ВЫ ДОЛЖНЫ ПЕРЕПАРКОВАТЬ АВТО В ТЕЧЕНИИ 4-х МИНУТ ИЛИ ВАША МАШИНА ПРОПАДЕТ!(/park)"); } } } } Вот и всё!Вам лишь надо её доработать. Автор:Неизвестно
×

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

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