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

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

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

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

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

Тип контента


Форумы

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

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

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


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

  • Начало

    Конец


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

  • Начало

    Конец


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

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

  1. Привет всем пользователям портала! На днях решил сделать приветствие как на URM RP. И вот что получилось.. К Глобальным переменным добавим: new Text:Privet[2]; Далее добавим показывание текста при входе игрока на сервер. В OnPlayerCOnnect добавим TextDrawShowForPlayer(playerid, Privet[0]); TextDrawShowForPlayer(playerid, Privet[1]); Далее удаление textdraw`a при спавне. Добавим эти строчки в OnPlayerSpawn TextDrawHideForPlayer(playerid, Privet[0]); TextDrawHideForPlayer(playerid, Privet[1]); Ну и сам textdraw в OnGameModeinit Privet[0] = TextDrawCreate(641.199951, 273.286682, "usebox"); TextDrawLetterSize(Privet[0], 0.000000, 1.923330); TextDrawTextSize(Privet[0], -2.000000, 0.000000); TextDrawAlignment(Privet[0], 1); TextDrawColor(Privet[0], 0); TextDrawUseBox(Privet[0], true); TextDrawBoxColor(Privet[0], 102); TextDrawSetShadow(Privet[0], 0); TextDrawSetOutline(Privet[0], 0); TextDrawFont(Privet[0], 0); Privet[1] = TextDrawCreate(107.999763, 274.773254, "ѓO—PO ЊO„A‡O‹A¦’ ®A CEP‹EP server-name!");//где server-name, ставим название своего сервера TextDrawLetterSize(Privet[1], 0.449999, 1.600000); TextDrawAlignment(Privet[1], 1); TextDrawColor(Privet[1], 16711935); TextDrawSetShadow(Privet[1], 0); TextDrawSetOutline(Privet[1], 1); TextDrawBackgroundColor(Privet[1], 51); TextDrawFont(Privet[1], 2); TextDrawSetProportional(Privet[1], 1); Скриншот: автор я(Ryan_Evans)
  2. Доброго времени суток, уважаемые форумчане, решил сделать простенькую системку, но довольно таки полезную. Вся суть в том, что если игрок пытается прыгнуть на велосипеде(CTRL), он падает с него. Перейдем сразу к делу: В OnPlayerKeyStateChange добавим: if(newkeys & 1) { new car = GetPlayerVehicleID(playerid); new model = GetVehicleModel(car); if(IsPlayerInAnyVehicle(playerid)) { if(model == 481 || model == 509 || model == 510) { RemovePlayerFromVehicle(playerid); ApplyAnimation(playerid,"PED","KD_left",4.1,0,1,1,1,0); } } } Вот и всё, если хотите, дополняйте что-то. Автор: Я (_TKILLAH_) Выкладывать на сторонние форумы запрещаю.
  3. Доброго времени суток! Попросили меня сделать такую системку, ну мне не сложно, вся суть, что чтобы получить права нужно сначала сдать экзамен и практику в автошколе, а ВУ уже получить у полицейского. Сделал под Gamer, кому нужно будет, под свой мод заточите. В enum pInfo добавим строчку pLicDostup, Далее, в OnPlayerRegister добавляем это ко всем строчкам такого типа: format(var, 32, "LicDostup=%d\n",PlayerInfo[playerid][pLicDostup]);fwrite(hFile,var);//Доступ к получению прав Ко всем командам добавим:
  4. Доброго времени суток, сейчас я вам покажу как можно сделать "крякалку" на кнопку для автомобилей гос.служб, а так же на другие авто. Для того чтобы все работало нам понадобится: мод, стример и прямые руки. По теории это будет выглядеть так: Все начинается с проверки нажатой игроком кнопкой, далее привязываем к этой проверке еще одну проверку на нахождение игрока за рулем авто. Если проверка проходит успешной, то создаем цикл, где будем искать всех активных игроков. После того как прошелся цикл, делаем проверку на нахождение найденного игрока, с игроком который включил "крякалку", а далее уже будет проигрывать звук, создавать таймер и делать дополнительные проверки во избежания флуда звуком. По практике это будет выглядеть так: Для начала создадим глобальную беременную(ко всем new добавим) new zvonok[MAX_PLAYERS]; Далее идем уже к нажатию кнопки. Проверка на нажатую кнопку осуществляется в паблике OnPlayerKeyStateChange if(newkeys == ид кнопки && IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) //проверяем нажатую кнопку и если игрок находится за рулем { if(GetPlayerVehicleID(playerid) == ид авто) //ид авто - т.е. ид авто на котором будет работать крякалка { for(new i=0; i<MAX_PLAYERS; i++) //цикл для поиска игроков { if(ProxDetectorS(15.0, playerid, i))//если игрок находится рядом с найденным по циклу, то.. { if(zvonok[i] == 1) return 0; //проверка "Запущен ли звук или нет?" PlayAudioStreamForPlayer(i,"ссылка на звук");//запускаем звук SetTimer("zvon", 5000, false); //создадим таймер по которому будет отключатся звук (я задал отключение через 5 сек. настраивайте время сами) zvonok[i] = 1; //ставим переменную zvonok на 1 от флуда звуком } } } } Далее перейдем к таймеру: В конец мода вставим forward zvon(playerid); //сообщим о паблике public zvon(playerid) { zvonok[playerid] = 0; //ставим переменную zvonok на 0, от флуда StopAudioStreamForPlayer(playerid); //останавливаем звук return true; } На данный момент это пока лишь первая версия, со времен буду улучшать ее с вашей помощью. Есть небольшой косяк в том что, звук не будет изменять свою громкость в зависимости от дальности нахождения автомобиля в котором он проигрывается, но и это можно исправить. К сожалению при копировании слетела табуляция, я думаю вам не составит труда настроить ее. По коду все отлично, у меня error\warning не было! По поводу работоспособности не знаю, нет возможности проверить. Обо всех ошибках прошу сообщать в эту тему, чтобы не разводить срач на форуме и совместно решать все баги! Буду рад выслушать все подсказки по поводу доработки кода. Автор: Ryslik42 (на некоторых форумах SMETAHA) - т.е. Я При копировании на другие форумы, прошу сохранить авторство!!!
  5. Создадим паблик , в котором сделаем проверку на хп машины , если меньше положенного , то устанавливаем чуть больше (чтобы дымилась) Ко всем forward'ам добавь: forward autochinilka(); Сам паблик public autochinilka() { for(new playerid=0; playerid<MAX_PLAYERS; playerid++) { if (IsPlayerInAnyVehicle(playerid)) { new Float:HPMASHINI; GetVehicleHealth(GetPlayerVehicleID(playerid), HPMASHINI); if (HPMASHINI < 300) { SetVehicleHealth(GetPlayerVehicleID(playerid), 350); } } } return 1; } Ну и в ongamemodeinit вставим сам таймер (если имеется односекундный таймер , то вставляем туда autochinilka() ) SetTimer("autochinilka", 1000, true); ЗЫ: Хп машины подогнал примерно Автор я , некоторые функции подглядел в интернете
  6. вот тут я снял видео о том как же удалить спидометр в моде csr 7.0.9 кому помогло пишите кто знает как удалить точку напишите в коментарий
  7. if(strcmp(cmd, "/cc", true) == 0) { if(accounts[playerid][padminlvl] < 0) return SendClientMessage(playerid,-1,"Вы не администратор."); { for(new i; i < 100; i++) SendClientMessageToAll(-1, " "); GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "[ID:%d] Администратор %s очистил чат.", playerid, sendername); SendClientMessageToAll(-1, string); } return 1; } accounts и padminlvl поменяете на свое. Если будут ошибки,то перед командой командой вставьте: new sendername[MAX_PLAYER_NAME]; new string[48];
  8. Хай! Ко всем NEW new Text: gText[1]; К другим Textdrawам gText[0] = TextDrawCreate(539.885925, 0.000000, "FULL"); TextDrawLetterSize(gText[0], 0.424399, 2.312532); TextDrawAlignment(gText[0], 1); TextDrawColor(gText[0], 0x4682B4FF); TextDrawSetOutline(gText[0], 0); TextDrawBackgroundColor(gText[0], 51); TextDrawFont(gText[0], 2); TextDrawSetProportional(gText[0], 1); gText[1] = TextDrawCreate(568.685729, 15.360033, "ROLE PLAY"); TextDrawLetterSize(gText[1], 0.194914, 0.972800); TextDrawAlignment(gText[1], 1); TextDrawColor(gText[1], -1); TextDrawSetOutline(gText[1], 0); TextDrawBackgroundColor(gText[1], 51); TextDrawFont(gText[1], 2); TextDrawSetProportional(gText[1], 1); SetWeather(1); return true; }
  9. Привет! Вырезал Текстдрав из мода Innovative Role Play К New new Text:Logo[2]; К Текстдравам Logo[0] = TextDrawCreate(542.588195, 2.333323, TranslateText("Innovative")); TextDrawLetterSize(Logo[0], 0.217999, 1.757499); TextDrawAlignment(Logo[0], 1); TextDrawColor(Logo[0], 11459583); TextDrawSetShadow(Logo[0], 0); TextDrawSetOutline(Logo[0], 0); TextDrawBackgroundColor(Logo[0], 51); TextDrawFont(Logo[0], 2); TextDrawSetProportional(Logo[0], 1); //TextDrawSetSelectable(Logo[0], true); Logo[1] = TextDrawCreate(543.529418, 12.249984, TranslateText("role play")); TextDrawLetterSize(Logo[1], 0.233057, 1.518332); TextDrawAlignment(Logo[1], 1); TextDrawColor(Logo[1], -1); TextDrawSetShadow(Logo[1], 0); TextDrawSetOutline(Logo[1], 0); TextDrawBackgroundColor(Logo[1], 51); TextDrawFont(Logo[1], 2); TextDrawSetProportional(Logo[1], 1); //TextDrawSetSelectable(Logo[1], true);
  10. Вот давно на компе завалялся TD и немного его доработав Переменные new Text:Speede[11] В OnGameModeInit: Speede[0] = TextDrawCreate(639.838, 360.571, "box"); TextDrawLetterSize(Speede[0], 0.000, 8.984); TextDrawTextSize(Speede[0], 361.600, 0.000); TextDrawAlignment(Speede[0], 1); TextDrawColor(Speede[0], 0); TextDrawUseBox(Speede[0], 1); TextDrawBoxColor(Speede[0], 102); TextDrawFont(Speede[0], 0); Speede[1] = TextDrawCreate(444.319, 398.794, "km/h"); TextDrawLetterSize(Speede[1], 0.449, 1.600); TextDrawAlignment(Speede[1], 1); TextDrawColor(Speede[1], -1); TextDrawSetOutline(Speede[1], 1); TextDrawBackgroundColor(Speede[1], 11980339); TextDrawFont(Speede[1], 3); TextDrawSetProportional(Speede[1], 1); Speede[2] = TextDrawCreate(377.437, 362.208, "100"); TextDrawLetterSize(Speede[2], 1.085, 4.098); TextDrawAlignment(Speede[2], 1); TextDrawColor(Speede[2], -1); TextDrawSetOutline(Speede[2], 2); TextDrawBackgroundColor(Speede[2], 9755443); TextDrawFont(Speede[2], 3); TextDrawSetProportional(Speede[2], 1); Speede[3] = TextDrawCreate(498.958, 363.477, "Toplivo"); TextDrawLetterSize(Speede[3], 0.587, 2.260); TextDrawTextSize(Speede[3], -4.480, -12.244); TextDrawAlignment(Speede[3], 1); TextDrawColor(Speede[3], -1); TextDrawSetOutline(Speede[3], 1); TextDrawBackgroundColor(Speede[3], 11577139); TextDrawFont(Speede[3], 1); TextDrawSetProportional(Speede[3], 1); Speede[4] = TextDrawCreate(500.277, 387.322, "Dvigatel"); TextDrawLetterSize(Speede[4], 0.542, 2.242); TextDrawTextSize(Speede[4], -4.480, -12.244); TextDrawAlignment(Speede[4], 1); TextDrawColor(Speede[4], -1); TextDrawSetOutline(Speede[4], 1); TextDrawBackgroundColor(Speede[4], 11577139); TextDrawFont(Speede[4], 1); TextDrawSetProportional(Speede[4], 1); Speede[5] = TextDrawCreate(500.298, 411.641, "Dveri"); TextDrawLetterSize(Speede[5], 0.670, 2.375); TextDrawTextSize(Speede[5], -4.480, -12.244); TextDrawAlignment(Speede[5], 1); TextDrawColor(Speede[5], -1); TextDrawSetOutline(Speede[5], 1); TextDrawBackgroundColor(Speede[5], 11577139); TextDrawFont(Speede[5], 1); TextDrawSetProportional(Speede[5], 1); Speede[6] = TextDrawCreate(496.877, 364.604, "box"); TextDrawLetterSize(Speede[6], 0.000, 8.227); TextDrawTextSize(Speede[6], 484.079, 0.000); TextDrawAlignment(Speede[6], 1); TextDrawColor(Speede[6], 0); TextDrawUseBox(Speede[6], 1); TextDrawBoxColor(Speede[6], 102); TextDrawFont(Speede[6], 0); Speede[7] = TextDrawCreate(374.079, 416.549, "CR-MP.ru"); TextDrawLetterSize(Speede[7], 0.409, 2.085); TextDrawTextSize(Speede[7], -53.277, -19.936); TextDrawAlignment(Speede[7], 1); TextDrawColor(Speede[7], -1); TextDrawSetOutline(Speede[7], 1); TextDrawBackgroundColor(Speede[7], 11467571); TextDrawFont(Speede[7], 1); TextDrawSetProportional(Speede[7], 1); Speede[8] = TextDrawCreate(628.739, 368.979, "100"); TextDrawLetterSize(Speede[8], 0.521, 1.786); TextDrawTextSize(Speede[8], -19.599, -13.663); TextDrawAlignment(Speede[8], 3); TextDrawColor(Speede[8], -1); TextDrawSetOutline(Speede[8], 2); TextDrawBackgroundColor(Speede[8], 10465609); TextDrawFont(Speede[8], 1); TextDrawSetProportional(Speede[8], 1); Speede[9] = TextDrawCreate(627.378, 390.035, "off"); TextDrawLetterSize(Speede[9], 0.590, 2.092); TextDrawTextSize(Speede[9], -4.480, -12.244); TextDrawAlignment(Speede[9], 3); TextDrawColor(Speede[9], -1); TextDrawSetOutline(Speede[9], 1); TextDrawBackgroundColor(Speede[9], 9218902); TextDrawFont(Speede[9], 1); TextDrawSetProportional(Speede[9], 1); Speede[10] = TextDrawCreate(629.078, 411.291, "lock"); TextDrawLetterSize(Speede[10], 0.513, 2.310); TextDrawTextSize(Speede[10], -4.480, -12.244); TextDrawAlignment(Speede[10], 3); TextDrawColor(Speede[10], -1); TextDrawSetOutline(Speede[10], 1); TextDrawBackgroundColor(Speede[10], 9735773); TextDrawFont(Speede[10], 1); TextDrawSetProportional(Speede[10], 1);
  11. Georg324

    TextDraw- Красивый

    Привет! Вырезал из мода texdraw. К NEW: new Text: Great[8]; К Остальным texdrawam // ~~~ Логотип Great[0] = TextDrawCreate(508.000000, 2.000000, "G"); TextDrawBackgroundColor(Great[0], 48); TextDrawFont(Great[0], 2); TextDrawLetterSize(Great[0], 0.629999, 2.200000); TextDrawColor(Great[0], 512819088); TextDrawSetOutline(Great[0], 0); TextDrawSetProportional(Great[0], 1); TextDrawSetShadow(Great[0], 1); TextDrawSetSelectable(Great[0], 0); Great[1] = TextDrawCreate(515.000000, 10.000000, "reat"); TextDrawBackgroundColor(Great[1], 48); TextDrawFont(Great[1], 1); TextDrawLetterSize(Great[1], 0.479999, 1.000000); TextDrawColor(Great[1], -1); TextDrawSetOutline(Great[1], 0); TextDrawSetProportional(Great[1], 1); TextDrawSetShadow(Great[1], 1); TextDrawSetSelectable(Great[1], 0); Great[2] = TextDrawCreate(541.000000, 4.000000, "G"); TextDrawBackgroundColor(Great[2], 48); TextDrawFont(Great[2], 2); TextDrawLetterSize(Great[2], 0.500000, 1.899999); TextDrawColor(Great[2], 512819088); TextDrawSetOutline(Great[2], 0); TextDrawSetProportional(Great[2], 1); TextDrawSetShadow(Great[2], 1); TextDrawSetSelectable(Great[2], 0); Great[3] = TextDrawCreate(556.000000, 9.000000, "ame"); TextDrawBackgroundColor(Great[3], 48); TextDrawFont(Great[3], 1); TextDrawLetterSize(Great[3], 0.479999, 1.100000); TextDrawColor(Great[3], -1); TextDrawSetOutline(Great[3], 0); TextDrawSetProportional(Great[3], 1); TextDrawSetShadow(Great[3], 1); TextDrawSetSelectable(Great[3], 0); Great[4] = TextDrawCreate(546.000000, 18.000000, "RolePlay"); TextDrawBackgroundColor(Great[4], 48); TextDrawFont(Great[4], 2); TextDrawLetterSize(Great[4], 0.219999, 0.799998); TextDrawColor(Great[4], -1); TextDrawSetOutline(Great[4], 0); TextDrawSetProportional(Great[4], 1); TextDrawSetShadow(Great[4], 1); TextDrawSetSelectable(Great[4], 0); Great[5] = TextDrawCreate(598.000000, 5.000000, "1"); TextDrawBackgroundColor(Great[5], 255); TextDrawFont(Great[5], 2); TextDrawLetterSize(Great[5], 0.500000, 1.699998); TextDrawColor(Great[5], -1); TextDrawSetOutline(Great[5], 0); TextDrawSetProportional(Great[5], 1); TextDrawSetShadow(Great[5], 0); TextDrawSetSelectable(Great[5], 0); Great[6] = TextDrawCreate(586.000000, 0.000000, "New Textdraw"); TextDrawBackgroundColor(Great[6], 0); TextDrawFont(Great[6], 5); TextDrawLetterSize(Great[6], 0.479999, 0.899999); TextDrawColor(Great[6], 1182970960); TextDrawSetOutline(Great[6], 0); TextDrawSetProportional(Great[6], 1); TextDrawSetShadow(Great[6], 1); TextDrawUseBox(Great[6], 1); TextDrawBoxColor(Great[6], 0); TextDrawTextSize(Great[6], 31.000000, 26.000000); TextDrawSetPreviewModel(Great[6], 2349); TextDrawSetPreviewRot(Great[6], 0.000000, 0.000000, 90.000000, 1.000000); TextDrawSetSelectable(Great[6], 0); Great[7] = TextDrawCreate(591.000000, 4.000000, "New Textdraw"); TextDrawBackgroundColor(Great[7], 0); TextDrawFont(Great[7], 5); TextDrawLetterSize(Great[7], 0.479999, 0.899999); TextDrawColor(Great[7], 16); TextDrawSetOutline(Great[7], 0); TextDrawSetProportional(Great[7], 1); TextDrawSetShadow(Great[7], 1); TextDrawUseBox(Great[7], 1); TextDrawBoxColor(Great[7], 0); TextDrawTextSize(Great[7], 21.000000, 18.000000); TextDrawSetPreviewModel(Great[7], 2349); TextDrawSetPreviewRot(Great[7], 0.000000, 0.000000, 90.000000, 1.000000); // ~~~ Логотип Все!
  12. Здравствуйте уважаемые пользователи.Решил выложить спидометр,было скучно вот решил сделать.TextDraw-Спидометра,делал на английском можете перевести на русский. Бензин,Скорость,Пробег,Двери. Ко всем New new Text:Textdraw0; new Text:Textdraw1; new Text:Textdraw2; new Text:Textdraw3; new Text:Textdraw4; new Text:Textdraw5; new Text:Textdraw6; new Text:Textdraw7; new Text:Textdraw8; Далее в public OnGameModeInit() Textdraw0 = TextDrawCreate(640.333312, 385.203704, "usebox"); TextDrawLetterSize(Textdraw0, 0.000000, 6.182097); TextDrawTextSize(Textdraw0, 512.666687, 0.000000); TextDrawAlignment(Textdraw0, 1); TextDrawColor(Textdraw0, 0); TextDrawUseBox(Textdraw0, true); TextDrawBoxColor(Textdraw0, 102); TextDrawSetShadow(Textdraw0, 0); TextDrawSetOutline(Textdraw0, 0); TextDrawFont(Textdraw0, 0); Textdraw1 = TextDrawCreate(514.333374, 383.288848, "FUEL:"); TextDrawLetterSize(Textdraw1, 0.449999, 1.600000); TextDrawAlignment(Textdraw1, 1); TextDrawColor(Textdraw1, -5963521); TextDrawSetShadow(Textdraw1, 0); TextDrawSetOutline(Textdraw1, 0); TextDrawBackgroundColor(Textdraw1, 51); TextDrawFont(Textdraw1, 2); TextDrawSetProportional(Textdraw1, 1); Textdraw2 = TextDrawCreate(513.999816, 398.637023, "SPEED:"); TextDrawLetterSize(Textdraw2, 0.446666, 1.587555); TextDrawAlignment(Textdraw2, 1); TextDrawColor(Textdraw2, -5963521); TextDrawSetShadow(Textdraw2, 1); TextDrawSetOutline(Textdraw2, 0); TextDrawBackgroundColor(Textdraw2, 51); TextDrawFont(Textdraw2, 2); TextDrawSetProportional(Textdraw2, 1); Textdraw3 = TextDrawCreate(514.666687, 411.911163, "Mileage:"); TextDrawLetterSize(Textdraw3, 0.449999, 1.600000); TextDrawAlignment(Textdraw3, 1); TextDrawColor(Textdraw3, -5963521); TextDrawSetShadow(Textdraw3, 0); TextDrawSetOutline(Textdraw3, 0); TextDrawBackgroundColor(Textdraw3, 51); TextDrawFont(Textdraw3, 2); TextDrawSetProportional(Textdraw3, 1); Textdraw4 = TextDrawCreate(514.000061, 425.600006, "DOOR:"); TextDrawLetterSize(Textdraw4, 0.449999, 1.600000); TextDrawAlignment(Textdraw4, 1); TextDrawColor(Textdraw4, -5963521); TextDrawSetShadow(Textdraw4, 0); TextDrawSetOutline(Textdraw4, 0); TextDrawBackgroundColor(Textdraw4, 51); TextDrawFont(Textdraw4, 2); TextDrawSetProportional(Textdraw4, 1); Textdraw5 = TextDrawCreate(566.333251, 426.014953, "LOCK"); TextDrawLetterSize(Textdraw5, 0.449999, 1.600000); TextDrawAlignment(Textdraw5, 1); TextDrawColor(Textdraw5, 16711935); TextDrawSetShadow(Textdraw5, 0); TextDrawSetOutline(Textdraw5, 0); TextDrawBackgroundColor(Textdraw5, 51); TextDrawFont(Textdraw5, 2); TextDrawSetProportional(Textdraw5, 1); Textdraw6 = TextDrawCreate(561.666564, 383.703765, "100L"); TextDrawLetterSize(Textdraw6, 0.449999, 1.600000); TextDrawAlignment(Textdraw6, 1); TextDrawColor(Textdraw6, 16711935); TextDrawSetShadow(Textdraw6, 0); TextDrawSetOutline(Textdraw6, 0); TextDrawBackgroundColor(Textdraw6, 51); TextDrawFont(Textdraw6, 2); TextDrawSetProportional(Textdraw6, 1); Textdraw7 = TextDrawCreate(573.666625, 398.637084, "100KM"); TextDrawLetterSize(Textdraw7, 0.449999, 1.600000); TextDrawAlignment(Textdraw7, 1); TextDrawColor(Textdraw7, 16711935); TextDrawSetShadow(Textdraw7, 0); TextDrawSetOutline(Textdraw7, 0); TextDrawBackgroundColor(Textdraw7, 51); TextDrawFont(Textdraw7, 1); TextDrawSetProportional(Textdraw7, 1); Textdraw8 = TextDrawCreate(593.666625, 412.740722, "0.0M"); TextDrawLetterSize(Textdraw8, 0.449999, 1.600000); TextDrawAlignment(Textdraw8, 1); TextDrawColor(Textdraw8, 16711935); TextDrawSetShadow(Textdraw8, 0); TextDrawSetOutline(Textdraw8, 0); TextDrawBackgroundColor(Textdraw8, 51); TextDrawFont(Textdraw8, 2); TextDrawSetProportional(Textdraw8, 1);
  13. решил написать простой скрипт чтобы админ мог включить всем музыку приступим перейдём в OnPlayerCommandText и там вставляем команду if(strcmp(cmd,"/music", true) == 0) { if(PlayerInfo[playerid][pAdmin] >= 3) { ShowPlayerDialog(playerid,345,DIALOG_STYLE_INPUT,"Музыку всем","Введите ссылку на песенку","Вкл","отмена"); return true; } return 1; } C командой покончено теперь идём в OnDialogResponse и вставляем данный кейс case 345: { if(response) { new giveplayerid; if(!strval(inputtext)) return ShowPlayerDialog(playerid,345,DIALOG_STYLE_INPUT,"Музыку всем","Введите ссылку на песенку","Вкл","отмена"); SendClientMessageToAll(0xFF0000FF,"Администратор включил музыку всем"); PlayAudioStreamForPlayer(giveplayerid,inputtext); } return 1; } Подобного на форуме не видел.
  14. Krutihine

    Записка на авто

    На форуме давно завалялась тема от Фроста "Записка на авто", но как все знают команда была просто обрезана у самого начала. Вот рывшись по другим форумам нашёл её полностью. Ко всем переменным: new Text3D:Numbertext[MAX_VEHICLES]; К #define: #define COLOR_ZAO 0x4592DEAA За тем в enum aInfo добавим: aTextCar, Ну и ко всем командам //------ [ /zapiska ] --- записка на авто --------// if (strcmp(cmd, "/zapiska", true) == 0) { new text_car[256]; if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pTextCar]==1) { SendClientMessage(playerid, COLOR_LIGHTRED, "На авто уже есть записка!"); return 1; } new cari = GetPlayerVehicleID(playerid); { new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { SendClientMessage(playerid, COLOR_ZAO, "Пропишите: /zapiska [text]"); return 1; } PlayerInfo[playerid][pTextCar]=1; SendClientMessage(playerid,COLOR_ZAO, "Вы оставили записку на авто!"); format(text_car,sizeof(text_car),"Сообщение: %s\n Отправитель: %s", result,sendername); Numbertext[cari] = Create3DTextLabel(text_car,COLOR_ZAO,0.0,0.0,0.0,15.0,0); Attach3DTextLabelToVehicle(Numbertext[cari],cari,0.0,0.0,1.0); OnPlayerUpdate(playerid); } } return 1; } //------ Удалить записку if(strcmp(cmd, "/delzapiska", true) == 0) { if(IsPlayerConnected(playerid)) { new cari = GetPlayerVehicleID(playerid); PlayerInfo[playerid][pTextCar]=0; SendClientMessage(playerid,COLOR_ZAO, "Вы убрали записку с авто!"); Delete3DTextLabel(Numbertext[cari]); } return 1; } Автор Sprite Да я знаю что отсутствует загрузка записки при ресстарте. Как будет время добавлю
  15. Лазил в интернете и нашёл урок "Создание интерьера авто". Для начала создаём переменную для того, чтобы мы выходили из того автомобиля в который вошли Добавляем ко всем new нашу new GetBuritoID[MAX_PLAYERS] В public OnPlayerStateChange (playerid, newstate, oldstate) кидаем if (newstate == PLAYER_STATE_PASSENGER) //если игрок как пасажир { if((GetPlayerVehicleSeat(playerid)==2 || GetPlayerVehicleSeat(playerid)==3) && GetVehicleModel(GetPlayerVehicleID(playerid)) == 482)//если игрок сел именно в зади и модел = бурито { SetPlayerVirtualWorld(playerid,GetPlayerVehicleID(playerid));//зададим ему виртуальный мир под номером того автомобиля в который сел. GetBuritoID[playerid] = GetPlayerVehicleID(playerid);//запишем в переменную ид автомобиля SetPlayerPos(playerid, X, Y, Z);//координаты появления ставим свои SetPlayerFacingAngle(playerid, 273.3243); SetCameraBehindPlayer(playerid); } } В public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) добавляем if(newkeys == 16 && GetBuritoID[playerid] >-1)//если игрок нажал энтер или f и он в автомобиле { new Float:X, Float:Y, Float:Z; GetVehiclePos(GetBuritoID[playerid], X, Y, Z);//узнаем координаты автомобиля в катором игрок (не трогаем) SetPlayerPos(playerid, X+4, Y, Z);//зададим координаты игроку рядом с авто (не трогаем) SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid,0); GetBuritoID[playerid] = -1; return 1; } Чтобы при уничтожении машины игрок тоже умирал добавляем в public OnVehicleDeath(vehicleid, killerid) if(GetVehicleModel(vehicleid)==482) BuritoDestroy(vehicleid); { for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i)) if(GetBuritoID[playerid]==vehicleid) { SetPlayerHealth(i,0.0); GetBuritoID[playerid] = -1; } } Ну и в public OnPlayerConnect(playerid) добавляем GetBuritoID[playerid] = -1;
  16. Здравствуйте уважаемые пользователи cr-mp.ru! Хочу предоставить вам систему викторин,которую я вырезал из одного мода. Каждые 5 минут(как я наблюдал)в чат выводится сообщение,если отвечаете правильно,вам дают денежный приз. P.S.Данная система очень интересна,советую взять ее себе на сервер и при необходимости изменить под свой проект. Приступим! Ко всем define добавим: #define vTimer 1 // Таймер в минутах #define vMaxN 100 // Максимальное число #define vMaxP 2000 // Максимальный приз new Viktorina = -5415614561541; В OnGameModeInit добавим сам таймер,через какое время будет новая викторина SetTimer("StartViktorina",vTimer * 300000,true); В OnPlayerText добавим OnPlayerText if(strval(text) == Viktorina) { new str[256],name[24],prize; GetPlayerName(playerid,name,sizeof name); prize = random(vMaxP); format(str,sizeof str,"{FFA500}Викторина: {ffffff}Игрок {FFA500}%s[id: %d]{ffffff} угадал! Ответ был: {FFA500}%d{ffffff}. Он получает: {00ff00}%d$",name,playerid,Viktorina,prize); SendClientMessageToAll(1,str); Give_Money(playerid,prize); Viktorina = -5415614561541; } И в конец мода добавим forward StartViktorina(); public StartViktorina() { new str[128],a,b; a = random(vMaxN); b = random(vMaxN); Viktorina = a + b; format(str,sizeof str,"{FFA500}Викторина: {ffffff}Сколько будет {FFA500}%d{ffffff} + {FFA500}%d{ffffff} ? {BEBEBE}(ответ пишем в чате)",a,b); SendClientMessageToAll(1,str); return 1; } P.S.Извините что скрины не могу выложить.Но система очень интересная.Деньги выдаются рандомно,но не очень много(будет полезно для рп серверов.) Автор неизвестно Всем добра!
  17. Для сервера требовалось реализовать отправку сообщений на электронную почту. Я долго искал средства реализации, в основном все решения состояли из пары пабликов и PHP скрипта. Я пробовал несколько таких решений, но письма долго не приходили на почту (ожидал около 10-15 мин) или вообще не приходили. Наконец, я наткнулся на плагин PWN Mail Exploder от Romanius'а Поставил плагин, все прописал и начал тестировать. Игра вылетела после отправки сообщения. Я сразу же удалил плагин и пошел искать другие решения. Листая ту же тему, я увидел пост от Владокса, который предлагал другой вариант этого плагина. Скачав и поставив плагин, я пришел в восторг от использования. Письмо приходило за минуту. Ну и решил выложить сюда урок по использованию. Начнем: 1. Качаем плагин.Mail Plugin. (Под Windows и Linux) 2. В public OnGameModeInit: mail_init("Хост SMTP", "Имя пользователя", "Пароль", "Откуда (email адрес)", "Имя отправителя"); Хост SMTP -- обычно smtp.[ваш почтовый сервис]. Например: smtp.yandex.ru и т.д. Внимание: лучше завести отдельную почту, которую будет не жалко (мало ли что разработчик может вшить в плагин). Желательно не использовать в имени пользователя дефис, точки и т.д. 3. Функция для отправки писем: mail_send(Тут любое число(я так и не понял, что тут должно быть), "Адрес назначения", "Тема письма", "Текст"); Пример: mail_send(1, "[email protected]", "Тестовое", "Это тестовое сообщение\nОтвечать на него не нужно"); В данном случае будет прислано письмо с текстом: "Это тестовое сообщение Отвечать на него не нужно" на адрес [email protected] с темой "Тестовое" 4. Также есть функция проверки валидности адреса: mail_is_valid("Адрес"); На этом все. Как использовать решение -- ваше дело. Автор урока: Moks Автор плагина: BJIAD0KC Автор плагина PME: Romanius P.S выкладываю, может кому нибудь пригодится?
  18. Каждый сталкивался с тем, что анимации не воспроизводятся с 1-го раза и иногда не синхронизируют с другими игроками. Если вы столкнулись с такой проблемой, то эта тема для вас. Анимации с 1-го раза. В public OnPlayerConnect вставьте: PreloadAnimLibs(playerid); В конец мода: stock PreloadAnimLibs(playerid) { static animlibs[131][] = { "AIRPORT", "Attractors", "BAR", "BASEBALL", "BD_FIRE", "BEACH", "benchpress", "BF_injection", "BIKED", "BIKEH", "BIKELEAP", "BIKES", "BIKES", "BIKEV", "BIKE_DBZ", "BLOWJOBZ", "BMX", "BOMBER", "BOX", "BSKTBALL", "BUDDY", "BUS", "CAMERA", "CAR", "CARRY", "CAR_CHAT", "CASINO", "CHAINSAW", "CHOPPA", "CLOTHES", "COACH", "COLT45", "COP_AMBIENT", "COP_DVBYZ", "CRACK", "CRIB", "DAM_JUMP", "DANCING", "DEALER", "DILDO", "DODGE", "DOZER", "DRIVEBYS", "FAT", "FIGHT_B", "FIGHT_C", "FIGHT_D", "FIGHT_E", "FINALE", "FINALE2", "FLAME", "Flowers", "FOOD", "Freeweights", "GANGS", "GHANDS", "GHETTO_DB", "goggles", "GRAFFITI", "GRAVEYARD", "GRENADE", "GYMNASIUM", "HAIRCUTS", "HEIST9", "INT_HOUSE", "INT_OFFICE", "INT_SHOP", "JST_BUISNESS", "KART", "KISSING", "KNIFE", "LAPDAN1", "LAPDAN2", "LAPDAN3", "LOWRIDER", "MD_CHASE", "MD_END", "MEDIC", "MISC", "MTB", "MUSCULAR", "NEVADA", "ON_LOOKERS", "OTB", "PARACHUTE", "PARK", "PAULNMAC", "PED", "PLAYER_DVBYS", "PLAYIDLES", "POLICE", "POOL", "POOR", "PYTHON", "QUAD", "QUAD_DBZ", "RAPPING", "RIFLE", "RIOT", "ROB_BANK", "ROCKET", "RUSTLER", "RYDER", "SCRATCHING", "SEX", "SHAMAL", "SHOP", "SHOTGUN", "SILENCED", "SKATE", "SMOKING", "SNIPER", "SPRAYCAN", "STRIP", "SUNBATHE", "SWAT", "SWEET", "SWIM", "SWORD", "TANK", "TATTOOS", "TEC", "TRAIN", "TRUCK", "UZI", "VAN", "VENDING", "VORTEX", "WAYFARER", "WEAPONS", "WUZI"}; for(new i = 0; i < 131; i++) ApplyAnimation(playerid, animlibs[i][0], "null", 0.0, 0, 0, 0, 0, 0); return 1; } Синхронизация анимаций между игроками. Откройте /pawno/include/a_players.inc В инклуде найдите строчку: native ApplyAnimation(playerid, animlib[], animname[], Float:fDelta, loop, lockx, locky, freeze, time, forcesync = 0); И замените её на: native ApplyAnimation(playerid, animlib[], animname[], Float:fDelta, loop, lockx, locky, freeze, time, forcesync = 1); Потом сохраните инклуд, откройте мод по новой через pawno.exe и скомпилируйте мод обязательно.. Автор урока : Neat
  19. Здравствуйте уважаемые пользователи,хочу вам представить рандомную погоду.Нашел в просторах интернета. И так начнем. К forward: forward ChangeWeather(); Затем в public OnGameModeInit() SetTimer("ChangeWeather",1000*60*30, true);//1 раз в 30 минут, будет меняться погода. ChangeWeather(); Ну и создаем паблик, в свободном месте. Можно в самом конце мода: public ChangeWeather() { new weather ; weather = random(20) ; SetWeather(weather); switch(weather) { case 1:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]:{FFC800}изменилась на солнечную!"); case 2:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {646CFF}изменилась на штормовую!"); case 3:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {FFC800}изменилась на солнечную!"); case 4:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {D2EBFF}изменилась на туманну."); case 5:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {D2EBFF}изменилась на дождевую!"); case 6:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {D2EBFF}изменилась на дождевую!"); case 7:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {D2EBFF}изменилась на облачную!"); case 8:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {D2EBFF}изменилась на пасмурную!"); case 9:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {D2EBFF}изменилась на туманную!"); case 10:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {ACFF46}изменилась на солнечную!"); case 11:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {ACFF46}изменилась на солнечную!"); case 12:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {D2EBFF}изменилась на облачную!"); case 13:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {FFDE37}изменилась на солнечную!"); case 14:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {FFDE37}изменилась на солнечную!"); case 15:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {D2EBFF}изменилась на облачную!"); case 16:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {D2EBFF}изменилась на дождевую!"); case 17:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {FF5441}изменилась на жаркую!"); case 18:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {FF5441}изменилась на жаркую!"); case 19:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {0A1EFF}изменилась на штормовую!"); case 20:SendClientMessageToAll(COLOR_RED,"{73F6FF}[Новости погоды]: {FAFFF5}погода сменилась на облачную, не забудьте зонтик."); } return 1; } Автор:Неизвестен
  20. Всем привет! Взялся я за мод Геймер и столкнулся с проблемой разделения пола (Скин не менялся на женском поле) И вот вырезал из Green Tech 2 строчки кода: Что нужно сделать: 1. Найти такие строчки (Могут различаться): Муж. PlayerInfo[playerid][pSex] = 1; SendClientMessage(playerid, COLOR_YELLOW2, "Принято, ты парень."); Жен. PlayerInfo[playerid][pSex] = 2; SendClientMessage(playerid, COLOR_YELLOW2, "Принято, ты девушка."); 2. После этих строчек нужно вставить эти: PlayerInfo[playerid][pChar] = 20; SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]); Где число 20 - это скин, меняете на своё значение. Примечание: Это можно сделать как для муж. пола, так и для женского пола. Всё спс за внимание. Думаю урок полезен для новичков!
  21. Здравствуйте уважаемые пользователи! Я решил представить вам часть кода,который позволяет личному авто сохранять свои позиции(даже после рестарта) Взято с другого портала В OnPlayerExitVehicle(playerid, vehicleid): new playername[MAX_PLAYER_NAME]; new Float:x,Float:y,Float:z,Float:a; new cars; GetPlayerName(playerid, playername, sizeof(playername)); if(!strcmp(playername, CarInfo[GetRealID(cars)][cOwner], true) || !strcmp(playername, CarInfo[GetRealID(cars)][cNick1], true)) { if(IsPlayerInAnyVehicle(playerid)) { cars = GetPlayerVehicleID(playerid) ; GetVehiclePos(cars,x, y, z); GetVehicleZAngle(cars, a); } new world = GetPlayerVirtualWorld(playerid); new inter = GetPlayerInterior(playerid); CarInfo[GetRealID(cars)][cWorld] = world; CarInfo[GetRealID(cars)][cInter] = inter; CarInfo[GetRealID(cars)][cPx] = x; CarInfo[GetRealID(cars)][cPy] = y; CarInfo[GetRealID(cars)][cPz] = z; CarInfo[GetRealID(cars)][cPa] = a; SaveCar(GetRealID(cars)); }
  22. Здравствуйте уважаемые пользователи! Решил сделать спидометр.Сделал только textdraw,а потом стало лень доделывать. Но пользователи которые понимают в этом,могут сделать спидометр работоспособным. Textdraw0 = TextDrawCreate(490.000000, 354.000000, "SPEED:"); TextDrawBackgroundColor(Textdraw0, 255); TextDrawFont(Textdraw0, 1); TextDrawLetterSize(Textdraw0, 0.679998, 2.099999); TextDrawColor(Textdraw0, -1); TextDrawSetOutline(Textdraw0, 0); TextDrawSetProportional(Textdraw0, 1); TextDrawSetShadow(Textdraw0, 1); Textdraw1 = TextDrawCreate(510.000000, 374.000000, "FUEL:"); TextDrawBackgroundColor(Textdraw1, 255); TextDrawFont(Textdraw1, 1); TextDrawLetterSize(Textdraw1, 0.599999, 2.200000); TextDrawColor(Textdraw1, -1); TextDrawSetOutline(Textdraw1, 0); TextDrawSetProportional(Textdraw1, 1); TextDrawSetShadow(Textdraw1, 1); Textdraw2 = TextDrawCreate(495.000000, 334.000000, "ENGINE:"); TextDrawBackgroundColor(Textdraw2, 255); TextDrawFont(Textdraw2, 1); TextDrawLetterSize(Textdraw2, 0.529999, 1.899999); TextDrawColor(Textdraw2, -1); TextDrawSetOutline(Textdraw2, 0); TextDrawSetProportional(Textdraw2, 1); TextDrawSetShadow(Textdraw2, 1); Textdraw3 = TextDrawCreate(495.000000, 393.000000, "LIGHTS:"); TextDrawBackgroundColor(Textdraw3, 255); TextDrawFont(Textdraw3, 1); TextDrawLetterSize(Textdraw3, 0.539999, 2.299998); TextDrawColor(Textdraw3, -1); TextDrawSetOutline(Textdraw3, 0); TextDrawSetProportional(Textdraw3, 1); TextDrawSetShadow(Textdraw3, 1);
  23. Здравствуйте уважаемые пользователи cr-mp.ru! Решил выложить сюда систему подъездов с мода GTRP! Взято с другого портала Начнем! Ко всем enum добавим
  24. Здравствуйте уважаемые пользователи CR-MP.RU Сегодня я вам покажу , как добавить ботов на сервер (Автор: Neat) Для начало, скачаем необходимые файлы ---------------------------------------------------------------------------------------------------------------------------------------- Файлы npc_record.pwn и npc_record.amx копируем в filterscripts, а a_npc.inc в /pawno/include. Далее открываем server.cfg и в строке filterscripts прописываем npc_record, также изменяем maxnpc на количество ботов на сервере. Далее открываем мод через pawno.exe и после #include <a_samp> добавляем #include <a_npc> и компилируем мод. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- В этом уроке мы будем делать бота который ездит на машине по заданному маршруту. Заходим на сервер, входим как RCON администратор, садимся в машину и как только вы готовы начать записывать бота - вводим команду /vrecord [имя бота] (не используйте кириллицу в названии бота). Запись началась, ездим по нужному нам маршруту и когда нужно остановить запись бота - вводим команду /srecord и запись останавливается. Выходим из игры и заходим в scriptfiles, там вы увидите названия бота.rec копируем этот файл в /npcmodes/recordings. Создаем чистый .pwn файл и вносим в него следующий код: #define RECORDING "NameNPC" //Имя вашего записанного файла из scriptfiles без расширения #define RECORDING_TYPE 1 //1 - если путь записан на машине, 2 - пешком #include main(){} public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING); #if RECORDING_TYPE == 1 public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING); public OnNPCExitVehicle() StopRecordingPlayback(); #else public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING); . #endif Компилируем и закрываем. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Открываем свой мод и ко всем глобальным переменным добавляем (название может быть любое, я взял ProverkaNPC): new ProverkaNPC Далее идем в public OnGameModeInit() и добавляем: ConnectNPC("любое имя бота","название файла из scriptfiles без расширения"); ProverkaNPC = CreateVehicle(400,0.0,0.0,5.0,0.0,3,3,5000);//Координаты изменять не надо, можете изменить только модель ТС и цвет Далее идем в public OnPlayerSpawn(playerid) и добавляем: if(IsPlayerNPC(playerid)) { new npcname[MAX_PLAYER_NAME]; GetPlayerName(playerid,npcname,sizeof(npcname)); if(!strcmp(npcname,"имя указанное в ConnectNPC",true)) { PutPlayerInVehicle(playerid,ProverkaNPC,0); } return 1; } Если при подключении бота, его выкидывает с сервера из-за того, что у вас система регистрации, то при регистрации нужно вставить этот код: if(IsPlayerNPC(playerid)) return 1; Всё! Если вы всё сделали правильно, то у вас всё должно работать. Файлы для ботов!.rar
  25. Всех приветствую дорогие форумчане Сегодня я полазил в инете и нашёл спидометр Спидометр предназначен для SAMP'a Но я попробовал сделать его на CR:MP и у меня это получилось Вот решил поделиться! Так же спидометр можно русифицировать, ну это по вкусу! Автор спидометра: wAx и thewax Для начала для нарисованных текстдравов, необходимо создать переменные: new Text:SBox; new Text:SBox1; new PlayerText:CarSpeed[MAX_PLAYERS]; new PlayerText:CarFuel[MAX_PLAYERS]; new PlayerText:CarMilliage[MAX_PLAYERS]; new PlayerText:CarLights[MAX_PLAYERS]; new PlayerText:CarEngine[MAX_PLAYERS]; Переменные созданы, теперь создадим функции для создания самих текстдравов! Глобальные: stock CreateGlobalTextDraws() { SBox = TextDrawCreate(626.000000, 384.540008, "usebox"); TextDrawLetterSize(SBox, 0.000000, 5.905555); TextDrawTextSize(SBox, 430.799987, 0.000000); TextDrawAlignment(SBox, 1); TextDrawColor(SBox, 0); TextDrawUseBox(SBox, true); TextDrawBoxColor(SBox, 102); TextDrawSetShadow(SBox, 0); TextDrawSetOutline(SBox, 0); TextDrawFont(SBox, 0); SBox1 = TextDrawCreate(601.875000, 383.250061, "LD_SPAC:white"); TextDrawLetterSize(SBox1, 0.000000, 0.000000); TextDrawTextSize(SBox1, 21.250000, 57.166625); TextDrawAlignment(SBox1, 1); TextDrawColor(SBox1, 255); TextDrawSetShadow(SBox1, 0); TextDrawSetOutline(SBox1, 0); TextDrawFont(SBox1, 4); return 1; } Персональные: stock CreatePlayersTextDraw(playerid) { CarSpeed[playerid] = CreatePlayerTextDraw(playerid, 442.399963, 386.026580, "SPEED: 100"); PlayerTextDrawLetterSize(playerid, CarSpeed[playerid], 0.401249, 1.430832); PlayerTextDrawAlignment(playerid, CarSpeed[playerid], 1); PlayerTextDrawColor(playerid, CarSpeed[playerid], -1); PlayerTextDrawSetShadow(playerid, CarSpeed[playerid], 0); PlayerTextDrawSetOutline(playerid, CarSpeed[playerid], 1); PlayerTextDrawBackgroundColor(playerid, CarSpeed[playerid], 51); PlayerTextDrawFont(playerid, CarSpeed[playerid], 1); PlayerTextDrawSetProportional(playerid, CarSpeed[playerid], 1); CarFuel[playerid] = CreatePlayerTextDraw(playerid, 442.149963, 401.026672, "FUEL: 1000"); PlayerTextDrawLetterSize(playerid, CarFuel[playerid], 0.401249, 1.430832); PlayerTextDrawAlignment(playerid, CarFuel[playerid], 1); PlayerTextDrawColor(playerid, CarFuel[playerid], -1); PlayerTextDrawSetShadow(playerid, CarFuel[playerid], 0); PlayerTextDrawSetOutline(playerid, CarFuel[playerid], 1); PlayerTextDrawBackgroundColor(playerid, CarFuel[playerid], 51); PlayerTextDrawFont(playerid, CarFuel[playerid], 1); PlayerTextDrawSetProportional(playerid, CarFuel[playerid], 1); CarMilliage[playerid] = CreatePlayerTextDraw(playerid, 441.899963, 416.610015, "MILLIAGE: 10000"); PlayerTextDrawLetterSize(playerid, CarMilliage[playerid], 0.401249, 1.430832); PlayerTextDrawAlignment(playerid, CarMilliage[playerid], 1); PlayerTextDrawColor(playerid, CarMilliage[playerid], -1); PlayerTextDrawSetShadow(playerid, CarMilliage[playerid], 0); PlayerTextDrawSetOutline(playerid, CarMilliage[playerid], 1); PlayerTextDrawBackgroundColor(playerid, CarMilliage[playerid], 51); PlayerTextDrawFont(playerid, CarMilliage[playerid], 1); PlayerTextDrawSetProportional(playerid, CarMilliage[playerid], 1); CarLights[playerid] = CreatePlayerTextDraw(playerid, 608.125000, 386.166625, "L"); PlayerTextDrawLetterSize(playerid, CarLights[playerid], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, CarLights[playerid], 1); PlayerTextDrawColor(playerid, CarLights[playerid], -1); PlayerTextDrawSetShadow(playerid, CarLights[playerid], 0); PlayerTextDrawSetOutline(playerid, CarLights[playerid], 1); PlayerTextDrawBackgroundColor(playerid, CarLights[playerid], 51); PlayerTextDrawFont(playerid, CarLights[playerid], 1); PlayerTextDrawSetProportional(playerid, CarLights[playerid], 1); CarEngine[playerid] = CreatePlayerTextDraw(playerid, 609.125000, 413.416778, "E"); PlayerTextDrawLetterSize(playerid, CarEngine[playerid], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, CarEngine[playerid], 1); PlayerTextDrawColor(playerid, CarEngine[playerid], -1); PlayerTextDrawSetShadow(playerid, CarEngine[playerid], 0); PlayerTextDrawSetOutline(playerid, CarEngine[playerid], 1); PlayerTextDrawBackgroundColor(playerid, CarEngine[playerid], 51); PlayerTextDrawFont(playerid, CarEngine[playerid], 1); PlayerTextDrawSetProportional(playerid, CarEngine[playerid], 1); return 1; } в OnGameModeInit закинем: CreateGlobalTextDraws(); в OnPlayerConnect: CreatePlayersTextDraw(); Теперь нам надо сделать так, чтобы игрок который сел в машину на место водителя, видел спидометр За изменение позиции игрока относительно штата, отвечает паблик OnPlayerStateChange, закинем код туда: if(newstate == PLAYER_STATE_DRIVER) { if(!noeng(GetPlayerVehicleID(playerid))) { new v = GetPlayerVehicleID(playerid); VehicleInfo[v][vFuel] = 50.0; GetPlayerPos(playerid, VehicleInfo[v][vPosx],VehicleInfo[v][vPosy],VehicleInfo[v][vPosz]); TextDrawShowForPlayer(playerid, SBox); TextDrawShowForPlayer(playerid, SBox1); PlayerTextDrawShow(playerid, CarSpeed[playerid]); PlayerTextDrawShow(playerid, CarFuel[playerid]); PlayerTextDrawShow(playerid, CarMilliage[playerid]); PlayerTextDrawShow(playerid, CarLights[playerid]); PlayerTextDrawShow(playerid, CarEngine[playerid]); SpeedTimer[playerid] = SetTimerEx("UpdateSpeed",200,1,"d",playerid); return 1; } } if(oldstate == PLAYER_STATE_DRIVER) { TextDrawHideForPlayer(playerid, SBox); TextDrawHideForPlayer(playerid, SBox1); PlayerTextDrawHide(playerid, CarSpeed[playerid]); PlayerTextDrawHide(playerid, CarFuel[playerid]); PlayerTextDrawHide(playerid, CarMilliage[playerid]); PlayerTextDrawHide(playerid, CarLights[playerid]); PlayerTextDrawHide(playerid, CarEngine[playerid]); KillTimer(SpeedTimer[playerid]); return 1; } теперь в начале мода, нам нужно создать массив для хранения характеристик авто enum vInfo { vEngine, Float:vFuel, Float:vMilliage, vLights, Float:vPosx,Float:vPosy,Float:vPosz }; new VehicleInfo[MAX_VEHICLES][vInfo]; отлично! Теперь создадим переменную для таймера, а также паблик самого таймера! new SpeedTimer[MAX_PLAYERS]; и создадим паблик: forward UpdateSpeed(playerid); public UpdateSpeed(playerid) { new string[256]; new v = GetPlayerVehicleID(playerid); format(string,sizeof(string),"SPEED: %d",SpeedVehicle(playerid)); PlayerTextDrawSetString(playerid, CarSpeed[playerid], string); format(string,sizeof(string),"FUEL: %d",floatround(VehicleInfo[v][vFuel])); PlayerTextDrawSetString(playerid, CarFuel[playerid], string); format(string,sizeof(string),"MILLIAGE: %d",floatround(VehicleInfo[v][vMilliage])); PlayerTextDrawSetString(playerid, CarMilliage[playerid], string); switch(VehicleInfo[v][vLights]) { case 0: PlayerTextDrawSetString(playerid, CarLights[playerid], "~w~L"); case 1: PlayerTextDrawSetString(playerid, CarLights[playerid], "~b~L"); } if(VehicleInfo[v][vEngine]) PlayerTextDrawSetString(playerid, CarEngine[playerid], "~b~E"); else PlayerTextDrawSetString(playerid, CarEngine[playerid],"~w~E"); if(VehicleInfo[v][vFuel] <= 0) { VehicleInfo[v][vEngine] = 0; VehicleInfo[v][vFuel] = 0.0; SetVehicleParamsEx(v, VehicleInfo[v][vEngine], VehicleInfo[v][vLights],0,0,0,0,0); } if(GetPlayerDistanceFromPoint(playerid, VehicleInfo[v][vPosx], VehicleInfo[v][vPosy], VehicleInfo[v][vPosz]) > 50.0) { VehicleInfo[v][vMilliage] += 0.1; VehicleInfo[v][vFuel] -= 0.05; GetPlayerPos(playerid, VehicleInfo[v][vPosx],VehicleInfo[v][vPosy],VehicleInfo[v][ vPosz]); } return 1; } Теперь сделаем заводку двигателя: в OnPlayerKeyStateChange if(newkeys & KEY_ACTION) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { new v = GetPlayerVehicleID(playerid); if(!noeng(v)) { if(!VehicleInfo[v][vFuel]) return 1; if(!VehicleInfo[v][vEngine]) VehicleInfo[v][vEngine] = 1; else VehicleInfo[v][vEngine] = 0; SetVehicleParamsEx(v, VehicleInfo[v][vEngine], VehicleInfo[v][vLights], 0, 0, 0, 0, 0); return 1; } } } и функция вычисления скорости stock noeng(carid) { new model = GetVehicleModel(carid); if(model == 462||model == 448||model == 509|| model == 510||model == 481||model==468||model == 471 || model == 511 || model == 512||model == 593||model == 520||model == 577||model == 476||model == 519 || model == 460 || model == 513||model == 472||model==473||model == 493||model == 595 || model == 484 || model == 430 || model == 453||model == 452||model == 446||model == 454 ||model == 548 ||model == 425|| model == 417||model == 487||model == 488||model == 497||model == 563||model == 447||model == 469||model == 553) return 1; return 0; } stock SpeedVehicle(playerid) { new Float:ST[4]; if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]); else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]); ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 100.3; return floatround(ST[3]); }
×

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

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