chapo
vk.com/chaposcripts
-
#1
Спидометр, написанный на ImGui
Возможности: отображает скорость, здоровье, название, айди машины, а так же статус дверей (открыты/закрыты) и статус двигателя (заведен/заглушен)
Требования: ImGui, fAwesome, inicfg
Установка: распаковать архив ![ImGui] Speedometer.rar в папку moonloader
Активация: автоматическая (на данный момент нет возможности отключить скрипт)
Как настроить показатель топлива под мой сервер?
для этого пропишите /textdrawid
и узнайте id текстдрава, который отображает кол-во топлива, откройте скрипт через любой текстовый редактор и впишите id текстдрава в переменную fuel_textdraw_id
Как изменить положение спидометра?
нажмите F1 и перетащите окно в нужное вам место, позиция будет сохранена
1. удаление серверного спидометра
2. хз
-
изменен внешний вид спидометра
-
теперь вы сами можете настроить показатель топлива под любой сервер. Для этого откройте скрипт в любом текстовом радакторе и замените «1» на id текстдрава с показателем топлива (на аризоне ID текстрава: 2100)
-
теперь окно не перетаскивается с помощью мыши, но его положение по прежнему можно настроить в .ini файле (связано это с ужасным колхозным костылем для рендера линии спидометра)
Установка: распаковать содержимое папки в папку moonloader
НЕ ОТКРЫВАТЬ КОД, МНОГО КОЛХОЗНЫХ КОСТЫЛЕЙ!
перетаскивать спидометр можно через F1 или открыв чат
-
!ImGui Speedometer by chapo.lua
13.3 KB · Просмотры: 1,219
-
![ImGui] Speedometer.rar
11.2 KB · Просмотры: 1,178
Последнее редактирование: 24 Янв 2021
-
#2
чел зделай лутше спаван машыну через /fixmycar ид кара чтоб скрипт сам водил ид машины и спавнил его, и да чтоб после тово как его заспавнить он выгружал его с севера, просто на помойке 05 есть токой баг если ты выгрузиш маину в кокомта месте то она там и появится после тово как загружать
думаю ты понял, спасибо зарания:)
chapo
vk.com/chaposcripts
-
#3
чел зделай лутше спаван машыну через /fixmycar ид кара чтоб скрипт сам водил ид машины и спавнил его, и да чтоб после тово как его заспавнить он выгружал его с севера, просто на помойке 05 есть токой баг если ты выгрузиш маину в кокомта месте то она там и появится после тово как загружать
думаю ты понял, спасибо зарания:)
невозможно зареспавнить машину через fixmycar если ты в ней сидишь, потом мб добавлю выход из авто, но тогда пропадет смысл
-
#4
невозможно зареспавнить машину через fixmycar если ты в ней сидишь, потом мб добавлю выход из авто, но тогда пропадет смысл
без разницы сидиш ты в машине или нет мне просто в падлу каждый раз песать /fixmycar Чтоб заспавнить машину, а плотить налог товоже мавера 50кк токое себе»Штраф»
chapo
vk.com/chaposcripts
-
#5
без разницы сидиш ты в машине или нет мне просто в падлу каждый раз песать /fixmycar Чтоб заспавнить машину, а плотить налог товоже мавера 50кк токое себе»Штраф»
если ты просто оставил машину на дороге и вышел из нее то налог на нее капать не будет. Налог будет капать только если ты припаркуешь машину на улице через /park
-
#6
если ты просто оставил машину на дороге и вышел из нее то налог на нее капать не будет. Налог будет капать только если ты припаркуешь машину на улице через /park
нееее ты не понял
chapo
vk.com/chaposcripts
-
#7
напиши мне в вк (в подписи)
-
#8
Посмотреть вложение 83709
Спидометр, написанный на ImGui
Возможности: отображает скорость, здоровье, название, айди машины, а так же статус дверей (открыты/закрыты) и статус двигателя (заведен/заглушен)
Требования: ImGui, fAwesome, inicfg
Установка: переместить файл!ImGui Speedometer.lua
в папкуmoonloader
Активация: автоматическая (на данный момент нет возможности отключить скрипт), /arzf — включить/отключить показатель топлива
(показатель топлива адаптирован только под аризону, если скажете айди текстдравов на других сервера, то добавлю в след. обнове)1. удаление серверного спидометра
2. хзперетаскивать спидометр можно через F1 или открыв чат
Предложение — вкл. выкл на клавишу, показатель количества топлива, отключение серверного спидометра и изменение размера спидометра. А так годно плюсую
chapo
vk.com/chaposcripts
-
#9
Предложение — вкл. выкл на клавишу
зачем?
показатель количества топлива,
сейчас есть показатель топлива, но работает он только на аризоне
отключение серверного спидометра
будет
изменение размера спидометра
зачем?)
-
#10
чел зделай лутше спаван машыну через /fixmycar ид кара чтоб скрипт сам водил ид машины и спавнил его, и да чтоб после тово как его заспавнить он выгружал его с севера, просто на помойке 05 есть токой баг если ты выгрузиш маину в кокомта месте то она там и появится после тово как загружать
думаю ты понял, спасибо зарания:)
Чел, это не баг, а фича от Аризоны на всех серверах так.
Возможно недоработка от АГ
-
#11
зачем?
сейчас есть показатель топлива, но работает он только на аризоне
будет
зачем?)
На некоторых серверах ест ьадмины которые могут докопаться до чего угодно — для этого нужна клавиша выкл спидометра. Размер спидометра для тех людей у кого плохое зрение чтобы можно было растянуть прямоугольник чуть больше. Ну самое главное наверное показатель топлива. Жду обновы с нетерпением
зачем?
сейчас есть показатель топлива, но работает он только на аризоне
будет
зачем?)
Кстати если нельзя сделать универсальный показатель топлива для всех серверов, можно сделать пикалку когда топлива остаеться очень мало? Там колокольчик, например?
chapo
vk.com/chaposcripts
-
#12
Кстати если нельзя сделать универсальный показатель топлива для всех серверов, можно сделать пикалку когда топлива остаеться очень мало? Там колокольчик, например?
Универсальный показатель топлива сделать сложно. Звуковое оповещение это хорошая идея, будет в след версии)
-
#13
сажусь в машину и такая приколюха
chapo
vk.com/chaposcripts
-
#15
Он установлен, ну лежит в папке «ресурсы», как положено
Обновлено: 09.02.2023
Спидометр, написанный на ImGui
Возможности: отображает скорость, здоровье, название, айди машины, а так же статус дверей (открыты/закрыты) и статус двигателя (заведен/заглушен)
Требования: ImGui, fAwesome, inicfg
Установка: распаковать архив ![ImGui] Speedometer.rar в папку moonloader
Активация: автоматическая (на данный момент нет возможности отключить скрипт)
Как настроить показатель топлива под мой сервер?
для этого пропишите /textdrawid и узнайте id текстдрава, который отображает кол-во топлива, откройте скрипт через любой текстовый редактор и впишите id текстдрава в переменную fuel_textdraw_id
Как изменить положение спидометра?
нажмите F1 и перетащите окно в нужное вам место, позиция будет сохранена
Установка спидометра для GTA San Andreas
Чтобы установить новый понравившийся анимационный мод, необходимо убедиться, что у вас установлена библиотека CLEO. Для этого зайдите в свою папку с игрой и посмотрите, есть ли в папке с игрой папка под названием CLEO. Если её нет, значит библиотека не установлена. Скачайте установщик последней версии библиотеки CLEO с нашего сайта, укажите путь к папке с игрой и дождитесь окончания установки.
Теперь дело за малым. Файл с расширением .cs необходимо переместить в папку CLEO. А файл с расширением .txd (чаще всего имеет название speed.txd) переместить по адресу modelstxd
Если мод всё-равно не работает или данная инструкция не помогла вам в установке, вы можете обратиться в нашу группу во Вконтакте , где вам обязательно помогут.
Спидометр для автомобилей Создание спидометра для автомобилей, который считает пройденный путь Оценка: 1 Голосов
thewax
В основном, после освоения азов систем регистраций, перед новичком(который только-только начинает писать СВОИ моды), стоит задача сделать функциональный, рабочий спидометр. Чаще всего возникает вопрос «как же сделать его»? Так вот, я заметил, большинство тем содержат в себе либо текстдравы(рисунок) либо функцию, но я почти не замечал где же обучение, за что отвечает та или иная строчка. Естественно расписывать очень подробно, всегда не легко, в любом случае я постараюсь уместить всю полезную информацию в один урок.
Нарисовав спидометр, нам необходимо создать текстдравы, я выбрал весьма простой дизай для своего спидометра:
Для начала для нарисованных текстдравов, необходимо создать переменные:
в OnGameModeInit закинем:
Теперь нам надо сделать так, чтобы игрок который сел в машину на место водителя, видел спидометр
За изменение позиции игрока относительно штата, отвечает паблик OnPlayerStateChange, закинем код туда:
thewax
Как установить мод на спидометр для GTA San Andreas
Очень странно, что в игре, в которой практически так или иначе вертится вокруг автомобилей (даже название игры!), отсутствуют спидометры. И это можно было бы понять, если бы в автопарке GTA: San Andreas не было такого большого количества разнообразных по характеристикам машин. Ведь иногда так хочется взять самую быструю тачку и пронестись на ней по автостраде на максимальной скорости.
А чтобы выяснить, какая скорость является максимальной, вам понадобится спидометр. Точнее мод, который его добавляет. В нашей базе бесплатных файлов огромное количество различных спидометров, вам нужно только выбрать подходящий себе по вкусу и скачать.
Установить такой мод очень просто. Если вы не знаете, как это сделать, данная инструкция поможет вам в этом! Она универсальна для большинства модов на спидометры, но если у вас всё же не получилось установить мод, напишите об этом в нашей группе во Вконтакте и мы добавим к моду персональную инструкцию по установке.
GTA Liberty City
представляю вашему вниманию глобальный мод на GTA San Andreas который заменит весь штат на Liberty City , кроме того этот мод заменяет всё! кроме движка! а это скин главного героя, транспорт, арсенал, некотрые люди, даже местные банды те что были в G.
Speedometer by DK22Pac
Простой и красивый спидометр на asi. В отличие от многих других, этот спидометр правильно вычисляет скорость.
Для работы нужен ASI Loader.
Установка: переместить все файлы в папку с игрой.
Инструкции по установке
Liberty City Stories PC Edition BETA 3.1.1
[!] Если у вас возникли проблемы при установке файла, то прочтите инструкцию по установке файлов для GTA San Andreas .
[!] Если вы считаете, что этот файл уже был добавлен в архив ранее, то сообщите, пожалуйста, об этом администратору с указанием ссылок на этот и добавленный ранее файл.
Читайте также:
- Как тренировать аим в osu
- Кто обязан вступать в сро gk portal ru
- Где найти тонара скайрим
- La union что это
- Зелье из тир на лиа ведьмак 3 для чего
- GTA San Andreas
- Статьи GTA San Andreas
- Как установить мод на спидометр для GTA San Andreas
/
/
/
Очень странно, что в игре, в которой практически так или иначе вертится вокруг автомобилей (даже название игры!), отсутствуют спидометры. И это можно было бы понять, если бы в автопарке GTA: San Andreas не было такого большого количества разнообразных по характеристикам машин. Ведь иногда так хочется взять самую быструю тачку и пронестись на ней по автостраде на максимальной скорости.
А чтобы выяснить, какая скорость является максимальной, вам понадобится спидометр. Точнее мод, который его добавляет. В нашей базе бесплатных файлов огромное количество различных спидометров, вам нужно только выбрать подходящий себе по вкусу и скачать.
Установить такой мод очень просто. Если вы не знаете, как это сделать, данная инструкция поможет вам в этом!
Установка спидометра для GTA San Andreas
Чтобы установить новый понравившийся анимационный мод, необходимо убедиться, что у вас установлена библиотека CLEO. Для этого зайдите в свою папку с игрой и посмотрите, есть ли в папке с игрой папка под названием CLEO. Если её нет, значит библиотека не установлена. Скачайте установщик последней версии библиотеки CLEO с нашего сайта, укажите путь к папке с игрой и дождитесь окончания установки.
Теперь дело за малым. Файл с расширением .cs необходимо переместить в папку CLEO. А файл с расширением .txd (чаще всего имеет название speed.txd) переместить по адресу modelstxd
Рекомендуемые файлы
Идеальный перевод SanLtd HD
За основу данного русификатора была взята сборка от SanLtd с фиксом от DimZet и siechkeeper, за что всем спасибо. Данная модификация сделает русификатор в HD качестве для Full HD мониторов. Русификацию текстур производил апскейлом, потом что-то дори…
Zombie Andreas Complete Final (Build 3585.64)
———————————————————————- 1. Описание: Zombie Andreas это модификация к игре «GTA: San Andreas», которая полностью изменяет весь геймплей игры. В штатах произошел зомби-апокалипсис, неизвестная инфекци…
Chaos Mod 3.2.0
Обновление 3.2.0: Добавлено 7 новых эффектов, исправлений и улучшений. Обновление 3.1.3: Добавлены новые эффекты, и исправления. Обновление 3.1.2: Добавлено 4 новых эффекта, исправлений и улучшений. Это модификация, ко…
SA Animation Loading Bar v1.1
Новая версия модификации, которая заменяет загрузочные экраны на новую анимацию, похожую на загрузку игры в GTA V . Исправления v1.1: -Персонажи перемещаются в 2 раза медленней. -Убран баг с мерцающей полосой загрузки. -Исправлен вылет в SA-MP. …
CLEO+ v1.1.3 (Обновление от 15.11.22)
CLEO+ CLEOPlus Обновление от 15.11.2022: Исправлена ошибка «FIX_CHAR_GROUND_BRIGHTNESS_AND_FADE_IN», из-за которой яркость людей была неправильной. Это исправляет освещение людей в таких модах, как Ped Spawn Creator; Исправлена ошибка «SET…
SilentPatch v1.1 Build 30
SilentPatch — один из лучших модов для GTA в мире. Цель мода — избавиться от исходных ошибок игры, чего Rockstar не сделал, или сделал в новых версиях GTA SA (например, Steam), и поэтому SilentPatch делает это и в 1.0 US. Это незаменимый мод, которы…
2013 Ford Shelby GT500 v1.1 by Tado Hamann, KH
— Высокодетализированная модель 2013 Ford Shelby GT500 v1.1 для GTA SA; — HQ интерьер, экстерьер; — Рабочий спидометр и тахометр; — 3D-двигатель; — Реалистичный свет фар, сто-сигналов, указателей поворотов, габаритов; — Машина правильных размеров; — …
Grand Theft Auto San Andreas: Classic Edition
Данная сборка исправляет большинство проблем в игре. В связи с тем, что разработчики не стали исправлять известные проблемы, всё приходится делать игрокам. Теперь игра будет выглядеть как и должна. Атмосфера улучшена известными исправлениями — таким…
Visual Player Image v1.1
Описание: Данный скрипт добавляет визуальный имидж (образ) игрока. С этим скриптом вы можете менять одежду, обувь, шляпы, очки, аксессуары, часы, татуировки и стрижки игрока с удобным визуальным интерфейсом. Изменения в версии 1.1 — Размер надп…
Real Vision v1.1
Real_Vision — модификация по преображению GTA San Andreas, цель мода — сделать графику в игре максимально приближенной к реальности, чтобы не было где-то слишком насыщенных, тёмных или пересвеченных моментов, а выглядело как одно целое. ВЕРСИЯ: 1….
90s Atmosphere Vehicles Pack
90s Atmosphere Vehicles Pack — это проект по замене всего транспорта в игре на схожий с оригинальными SA-моделями, частично включая воздушный, водный и RC-транспорт. Обновление от 01.02.23: — Полностью пересобрал пак на основе последней стабильно…
Исправление разных текстур
Что было исправлено? Был исправлен биллборд; Был возвращен настенный рисунок из бета-версии; Также был возвращен Zip Pizza из бета-версии; Исправлен вход в аэропорт Лас-Вентураса; Был исправлен объект в интерьере аэропорта Либерти Сити; …
Amazing Screenshot v1.1
Вот и вышло продолжение этого замечательного скрипта . В этой версии имеется множество исправлений и оптимизаций кода, а также добавлены новые функции. Управление: V 1.0 Alt+V — вкл/выкл режима скриншотов V — смена камеры, движениями мыши управляет…
Effects NFS ProStreet mod v1.1
NFS ProStreet mod v1.1///////////////// \Effects mod v1.1//////////////////////// Этот мод заменяет все эффекты,придовая реалистичности. Что изменилось: 1.Другой дым из-под колёс 2.Изменено пламя и дым. 3.Изменен…
Всем привет. В этом финальном уроке мы сделаем настоящий спидометр в не просто картинку =)
Итак. Идём в папку Ipleomax и заходим в папку scriptfiles. Открываем наш спидометр
Видем new-ы и наши отдельные текстдравы.
Давайте присвоим эти текстдравы для игрока а не для сервера.
К new-вам дописываем [MAX_PLAYERS].
Пример
new Text:TextBox; new Text:TextBox[MAX_PLAYERS];
Теперь идём к текст дравам там дописываем [playerid]
Пример
TextBox = TextDrawCreate(630.125000, 338.083465, "usebox");//- TextBox[playerid] = TextDrawCreate(630.125000, 338.083465, "usebox");//+
И так со всеми…
Далеее идём в наш мод.
Ко всем new мы дописываем new-вы из Ipleomax
new Text:TextBox[MAX_PLAYERS]; new Text:TextBox1[MAX_PLAYERS]; new Text:TextBox2[MAX_PLAYERS]; new Text:TextEngine[MAX_PLAYERS]; new Text:TextDoor[MAX_PLAYERS]; new Text:TextLight[MAX_PLAYERS]; new Text:TextMax[MAX_PLAYERS]; new Text:TextSpeed[MAX_PLAYERS]; new Text:TextSpeed1[MAX_PLAYERS]; new Text:TextHealth[MAX_PLAYERS]; new Text:TextFuel[MAX_PLAYERS]; new Text:TextName[MAX_PLAYERS];
Теперь давайте загрузим наши текстдравы
В конец мода
stock LoadSpeedometr(playerid) { TextBox[playerid] = TextDrawCreate(630.125000, 338.083465, "usebox");//создали текст драв(коробку) TextDrawLetterSize(TextBox[playerid], 0.000000, 10.766667);//размер TextDrawTextSize(TextBox[playerid], 476.750000, 0.000000);//размер текста TextDrawAlignment(TextBox[playerid], 1);//выравнивание TextDrawColor(TextBox[playerid], 0);//цвет TextDrawUseBox(TextBox[playerid], true); TextDrawBoxColor(TextBox[playerid], 102);//цвет коробки TextDrawSetShadow(TextBox[playerid], 0);//тень TextDrawSetOutline(TextBox[playerid], 0);//обводка TextDrawFont(TextBox[playerid], 0);//шрифт TextBox1[playerid] = TextDrawCreate(617.000000, 418.583312, "usebox"); TextDrawLetterSize(TextBox1[playerid], 0.000000, 0.979631); TextDrawTextSize(TextBox1[playerid], 490.500000, 0.000000); TextDrawAlignment(TextBox1[playerid], 1); TextDrawColor(TextBox1[playerid], 0); TextDrawUseBox(TextBox1[playerid], true); TextDrawBoxColor(TextBox1[playerid], 102); TextDrawSetShadow(TextBox1[playerid], 0); TextDrawSetOutline(TextBox1[playerid], 0); TextDrawFont(TextBox1[playerid], 0); TextBox2[playerid] = TextDrawCreate(614.500000, 357.916656, "usebox"); TextDrawLetterSize(TextBox2[playerid], 0.000000, -0.316666); TextDrawTextSize(TextBox2[playerid], 491.750000, 0.000000); TextDrawAlignment(TextBox2[playerid], 1); TextDrawColor(TextBox2[playerid], 0); TextDrawUseBox(TextBox2[playerid], true); TextDrawBoxColor(TextBox2[playerid], 102); TextDrawSetShadow(TextBox2[playerid], 0); TextDrawSetOutline(TextBox2[playerid], 0); TextDrawFont(TextBox2[playerid], 0); TextEngine[playerid] = TextDrawCreate(500.000000, 338.333343, "E"); TextDrawLetterSize(TextEngine[playerid], 0.449999, 1.600000); TextDrawAlignment(TextEngine[playerid], 1); TextDrawColor(TextEngine[playerid], 8388863); TextDrawSetShadow(TextEngine[playerid], 0); TextDrawSetOutline(TextEngine[playerid], 1); TextDrawBackgroundColor(TextEngine[playerid], 51); TextDrawFont(TextEngine[playerid], 1); TextDrawSetProportional(TextEngine[playerid], 1);//пропорции TextDoor[playerid] = TextDrawCreate(528.750000, 338.333374, "D"); TextDrawLetterSize(TextDoor[playerid], 0.449999, 1.600000); TextDrawAlignment(TextDoor[playerid], 1); TextDrawColor(TextDoor[playerid], 8388863); TextDrawSetShadow(TextDoor[playerid], 0); TextDrawSetOutline(TextDoor[playerid], 1); TextDrawBackgroundColor(TextDoor[playerid], 51); TextDrawFont(TextDoor[playerid], 1); TextDrawSetProportional(TextDoor[playerid], 1); TextLight[playerid] = TextDrawCreate(562.079956, 338.333435, "L"); TextDrawLetterSize(TextLight[playerid], 0.449999, 1.600000); TextDrawAlignment(TextLight[playerid], 1); TextDrawColor(TextLight[playerid], 8388863); TextDrawSetShadow(TextLight[playerid], 0); TextDrawSetOutline(TextLight[playerid], 1); TextDrawBackgroundColor(TextLight[playerid], 51); TextDrawFont(TextLight[playerid], 1); TextDrawSetProportional(TextLight[playerid], 1); TextMax[playerid] = TextDrawCreate(589.583374, 338.333404, "M"); TextDrawLetterSize(TextMax[playerid], 0.449999, 1.600000); TextDrawAlignment(TextMax[playerid], 1); TextDrawColor(TextMax[playerid], 8388863); TextDrawSetShadow(TextMax[playerid], 0); TextDrawSetOutline(TextMax[playerid], 1); TextDrawBackgroundColor(TextMax[playerid], 51); TextDrawFont(TextMax[playerid], 1); TextDrawSetProportional(TextMax[playerid], 1); TextSpeed[playerid] = TextDrawCreate(500.875000, 375.666717, "00"); TextDrawLetterSize(TextSpeed[playerid], 0.656250, 3.787500); TextDrawTextSize(TextSpeed[playerid], 56.250000, 49.583343); TextDrawAlignment(TextSpeed[playerid], 1); TextDrawColor(TextSpeed[playerid], -1); TextDrawSetShadow(TextSpeed[playerid], 0); TextDrawSetOutline(TextSpeed[playerid], 1); TextDrawBackgroundColor(TextSpeed[playerid], 51); TextDrawFont(TextSpeed[playerid], 1); TextDrawSetProportional(TextSpeed[playerid], 1); TextSpeed1[playerid] = TextDrawCreate(493.750000, 361.083343, "Spedd"); TextDrawLetterSize(TextSpeed1[playerid], 0.449999, 1.600000); TextDrawAlignment(TextSpeed1[playerid], 1); TextDrawColor(TextSpeed1[playerid], -5963521); TextDrawSetShadow(TextSpeed1[playerid], 0); TextDrawSetOutline(TextSpeed1[playerid], 1); TextDrawBackgroundColor(TextSpeed1[playerid], 51); TextDrawFont(TextSpeed1[playerid], 1); TextDrawSetProportional(TextSpeed1[playerid], 1); TextHealth[playerid] = TextDrawCreate(551.00000, 361.083343, "Health: 0%"); TextDrawLetterSize(TextHealth[playerid], 0.300000, 1.600000); TextDrawAlignment(TextHealth[playerid], 1); TextDrawColor(TextHealth[playerid], -1523963137); TextDrawSetShadow(TextHealth[playerid], 0); TextDrawSetOutline(TextHealth[playerid], 1); TextDrawBackgroundColor(TextHealth[playerid], 51); TextDrawFont(TextHealth[playerid], 1); TextDrawSetProportional(TextHealth[playerid], 1); TextFuel[playerid] = TextDrawCreate(551.250000, 387.333343, "Fuel: 0"); TextDrawLetterSize(TextFuel[playerid], 0.365624, 1.757500); TextDrawAlignment(TextFuel[playerid], 1); TextDrawColor(TextFuel[playerid], -65281); TextDrawSetShadow(TextFuel[playerid], 0); TextDrawSetOutline(TextFuel[playerid], 1); TextDrawBackgroundColor(TextFuel[playerid], 51); TextDrawFont(TextFuel[playerid], 1); TextDrawSetProportional(TextFuel[playerid], 1); TextName[playerid] = TextDrawCreate(505.500000, 414.749938, "None"); TextDrawLetterSize(TextName[playerid], 0.449999, 1.600000); TextDrawAlignment(TextName[playerid], 1); TextDrawColor(TextName[playerid], -1); TextDrawSetShadow(TextName[playerid], 0); TextDrawSetOutline(TextName[playerid], 1); TextDrawBackgroundColor(TextName[playerid], 51); TextDrawFont(TextName[playerid], 1); TextDrawSetProportional(TextName[playerid], 1); }
В OnPlayerConnect(playerid)
LoadSpeedometr(playerid);
Ко всем new добавим необходимые new-вы
new engine,lights,alarm,doors,bonnet,boot,objective; new gCarLock[MAX_VEHICLES]; new Fuel[MAX_VEHICLES]; new bool:Engine[MAX_VEHICLES]; new bool:Lights[MAX_VEHICLES]; new bool:MaxSpeed[MAX_PLAYERS];
Теперь в OnGameModeInit
SetTimer("UpdateSpeedometr", 100, true);//таймер в котором будем обновять спидометр (за 1 секунду он обновится 10 раз)(не изменять) SetTimer("UpdateFuel", 10000, true);//таймер в котором будем отнимать бензин(если двигатель включон то через 10 сек отнимем 1 литр бензина)(можно изменить) ManualVehicleEngineAndLights(); for(new car = 0; car < MAX_VEHICLES; car++)//"выделяем" все машины сервера { Fuel[car] = 200;//установим всем машинам на сервере 200 литров бензина.(можно изменить) }
Мы добавили ManualVehicleEngineAndLights. Что же это?
Это стандартная ф-ция. без нее фары будут автоматично вкл/выкл в зависимости от того где машина в тёмном или светлом месте. А двигатель когда игрок садится в машину будет выключен. Без нее при посадке в машину двигатель будет включон даже если на спидометре он выкл.
В конец мода
forward UpdateFuel(); public UpdateFuel() { for(new carid = 0; carid < MAX_VEHICLES; carid++) { if(Engine[carid] == true)//если включен двигатель { if(Fuel[carid] == 1)//если бензина потчи нету { Fuel[carid]--;//отнимаем 1 литр Engine[carid] = false; Lights[carid] = false; GetVehicleParamsEx(carid,engine,lights,alarm,doors,bonnet,boot,objective); //узнаем состояние каждой детали тачки SetVehicleParamsEx(carid,VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);//выключаем двигатель и фары } else Fuel[carid]--; } } return 1; }
Теперь создадим stock-ы которые будут менять значения на спидометре.
stock SetSpeed(playerid, speed) { new string[4]; format(string, sizeof(string), "%d", speed); TextDrawSetString(TextSpeed[playerid], string); } stock SetVehHealth(playerid, Float:health) { new string[16]; format(string, sizeof(string), "Health: %.0f%", health/10); TextDrawSetString(TextHealth[playerid], string); } stock SetFuel(playerid, fuel) { new string[16]; format(string, sizeof(string), "Fuel: %d", fuel); TextDrawSetString(TextFuel[playerid], string); } stock SetLock(playerid, status) { if(status == 1) { TextDrawSetString(TextDoor[playerid], "~g~D"); } else if(status == 0) { TextDrawSetString(TextDoor[playerid], "~y~D"); } } stock SetLights(playerid, bool:status) { if(status == true) { TextDrawSetString(TextLight[playerid], "~g~L"); } else if(status == false) { TextDrawSetString(TextLight[playerid], "~y~L"); } } stock SetMax(playerid, bool:status) { if(status == true) { TextDrawSetString(TextMax[playerid], "~g~M"); } else if(status == false) { TextDrawSetString(TextMax[playerid], "~y~M"); } } stock SetEngine(playerid, bool:status) { if(status == true) TextDrawSetString(TextEngine[playerid], "~g~E"); else if(status == false) TextDrawSetString(TextEngine[playerid], "~y~E"); } //------------------------------------------------------------------------------
Этим сток можно открывать закрывать машину(просто вставив (Un)LockCar(carid) в нужно место)
stock LockCar(carid) { foreach(Player, i) { if(!IsPlayerConnected(i)) continue; SetVehicleParamsForPlayer(carid,i,0,1);//открываем двери gCarLock[carid] = 1; } return 1; } //------------------------------------------------------------------------------ stock UnLockCar(carid) { foreach(Player, i) { SetVehicleParamsForPlayer(carid,i,0,0);//закрываем двери gCarLock[carid] = 0; } return 1; }
Теперь нам нужно както узнать скорость автомобиля
Для этого в конце мода создаем stock
stock SpeedVehicle(player) { new Float:x, Float:y, Float:z; if(IsPlayerInAnyVehicle(player)) { new veh = GetPlayerVehicleID(player); GetVehicleVelocity(veh, x, y, z); } else GetPlayerVelocity(player, x, y, z); return floatround(floatsqroot(x*x+y*y+z*z)*99); }
Создадим паблик в конце мода котрый будет обновлять спидометр
forward UpdateSpeedometr(playerid, carid); public UpdateSpeedometr(playerid, carid) { new Float:vehhealth; new Float:x,Float:y,Float:z; carid = GetPlayerVehicleID(playerid);//узнаем машину в которой сидит игрок SetSpeed(playerid, SpeedVehicle(playerid));//показываем скорость GetVehicleHealth(carid, vehhealth);//узнаем хп автомобиля SetLock(playerid, gCarLock[carid]);//показываем закрыта/открыта ли дверь SetVehHealth(playerid, vehhealth);//показываем хп автомобиля SetFuel(playerid, Fuel[carid]);//показываем бензин автомобиля SetLights(playerid, Lights[carid]);//показываем состояние фар автомобиля SetEngine(playerid, Engine[carid]);//показываем состояние двигателя автомобиля SetMax(playerid, MaxSpeed[playerid]);//показываем включен ли ограничитель скорости автомобиля if(MaxSpeed[playerid] == true) //если ограничитель скорости включон то... { GetVehicleVelocity(carid,x,y,z); if(SpeedVehicle(playerid) >= 50)//если скорость кара больше чем 50 то приостанавливаем немного { SetVehicleVelocity(carid,x*0.95,y*0,95,z); } } }
Теперь нужно зделать чтоб спидометр показывался только когда игрок зайдёт в машину и если выйдет то закрывался
Для этого идём в паблик OnPlayerStateChange
И пишем
if(newstate == PLAYER_STATE_ONFOOT)//если игрок вышел из машины { if(oldstate == PLAYER_STATE_DRIVER) { TextDrawHideForPlayer(playerid, TextSpeed[playerid]);//скрываем спидометры TextDrawHideForPlayer(playerid, TextSpeed1[playerid]); TextDrawHideForPlayer(playerid, TextHealth[playerid]); TextDrawHideForPlayer(playerid, TextFuel[playerid]); TextDrawHideForPlayer(playerid, TextDoor[playerid]); TextDrawHideForPlayer(playerid, TextLight[playerid]); TextDrawHideForPlayer(playerid, TextMax[playerid]); TextDrawHideForPlayer(playerid, TextEngine[playerid]); TextDrawHideForPlayer(playerid, TextName[playerid]); TextDrawHideForPlayer(playerid, TextBox[playerid]); TextDrawHideForPlayer(playerid, TextBox1[playerid]); TextDrawHideForPlayer(playerid, TextBox2[playerid]); MaxSpeed[playerid] = false; } } if(newstate == PLAYER_STATE_DRIVER)//если игрок зашол в кар { new car = GetPlayerVehicleID(playerid); if(Engine[car] == false) SendClientMessage(playerid, -1, "Чтобы завести двигатель, нажмите: {FFFF00}LCTRL"); MaxSpeed[playerid] = true;//включаем ограничитель скорости TextDrawShowForPlayer(playerid, TextSpeed[playerid]);//показываем текстдравы TextDrawShowForPlayer(playerid, TextSpeed1[playerid]); TextDrawShowForPlayer(playerid, TextHealth[playerid]); TextDrawShowForPlayer(playerid, TextFuel[playerid]); TextDrawShowForPlayer(playerid, TextDoor[playerid]); TextDrawShowForPlayer(playerid, TextLight[playerid]); TextDrawShowForPlayer(playerid, TextMax[playerid]); TextDrawShowForPlayer(playerid, TextEngine[playerid]); TextDrawShowForPlayer(playerid, TextName[playerid]); TextDrawShowForPlayer(playerid, TextBox[playerid]); TextDrawShowForPlayer(playerid, TextBox1[playerid]); TextDrawShowForPlayer(playerid, TextBox2[playerid]); TextDrawSetString(TextName[playerid], VehicleNames[GetVehicleModel(car)-400]);//узнаем марку авто(отнимаем 400 потомучто иды начинаются с 400 а нам нужно с 0) }
Ко всем new добавим названия машин
new VehicleNames[212][] = { {"Landstalker"},{"Bravura"},{"Buffalo"},{"Linerunner"},{" Perrenial"},{"Sentinel"},{"Dumper"}, {"Firetruck"},{"Trashmaster"},{"Stretch"},{"Manana"},{"Infernus" },{"Voodoo"},{"Pony"},{"Mule"}, {"Cheetah"},{"Ambulance"},{"Leviathan"},{"Moonbeam"},{"Esperanto" },{"Taxi"},{"Washington"}, {"Bobcat"},{"Mr Whoopee"},{"Injection"},{"Hunter"},{"Premier"},{"Enforcer" },{"Securicar"}, {"Banshee"},{"Predator"},{"Bus"},{"Rhino"},{"Barracks" },{"Hotknife"},{"Trailer 1"},{"Previon"}, {"Coach"},{"Cabbie"},{"Stallion"},{"Rumpo"},{"RC Bandit"},{"Romero"},{"Packer"},{"Monster"}, {"Admiral"},{"Squalo"},{"Seasparrow"},{"Pizzaboy"},{"Tram" },{"Trailer 2"},{"Turismo"}, {"Speeder"},{"Reefer"},{"Tropic"},{"Flatbed"},{"Yankee" },{"Caddy"},{"Solair"},{"Berkley's RC Van"}, {"Skimmer"},{"PCJ-600"},{"Faggio"},{"Freeway"},{"RC Baron"},{"RC Raider"},{"Glendale"},{"Oceanic"}, {"Sanchez"},{"Sparrow"},{"Patriot"},{"Quad"},{"Coastguard" },{"Dinghy"},{"Hermes"},{"Sabre"}, {"Rustler"},{"ZR-350"},{"Walton"},{"Regina"},{"Comet" },{"BMX"},{"Burrito"},{"Camper"},{"Marquis"}, {"Baggage"},{"Dozer"},{"Maverick"},{"News Chopper"},{"Rancher"},{"FBI Rancher"},{"Virgo"},{"Greenwood"}, {"Jetmax"},{"Hotring"},{"Sandking"},{"Blista Compact"},{"Police Maverick"},{"Boxville"},{"Benson"}, {"Mesa"},{"RC Goblin"},{"Hotring A"},{"Hotring B"},{"Bloodring"},{"Rancher"}, {"Super GT"},{"Elegant"},{"Journey"},{"Bike"},{"Mountain Bike"},{"Beagle"},{"Cropdust"},{"Stunt"}, {"Tanker"}, {"Roadtrain"},{"Nebula"},{"Majestic"},{"Buccaneer"},{"Shamal" },{"Hydra"},{"FCR-900"}, {"NRG-500"},{"HPV1000"},{"Cement Truck"},{"Tow Truck"},{"Fortune"},{"Cadrona"},{"FBI Truck"}, {"Willard"},{"Forklift"},{"Tractor"},{"Combine"},{"Feltzer" },{"Remington"},{"Slamvan"}, {"Blade"},{"Freight"},{"Streak"},{"Vortex"},{"Vincent" },{"Bullet"},{"Clover"},{"Sadler"}, {"Firetruck"},{"Hustler"},{"Intruder"},{"Primo"},{"Cargobob" },{"Tampa"},{"Sunrise"},{"Merit"}, {"Utility"},{"Nevada"},{"Yosemite"},{"Windsor"},{"Monster A"},{"Monster B"},{"Uranus"},{"Jester"}, {"Sultan"},{"Stratum"},{"Elegy"},{"Raindance"},{"RC Tiger"},{"Flash"},{"Tahoma"},{"Savanna"}, {"Bandito"},{"Freight Flat"},{"Carriage"},{"Kart"},{"Mower"},{"Duneride"},{" Sweeper"}, {"Broadway"},{"Tornado"},{"AT-400"},{"DFT-30"},{"Huntley" },{"Stafford"},{"BF-400"},{"Newsvan"}, {"Tug"},{"Trailer 3"},{"Emperor"},{"Wayfarer"},{"Euros"},{"Hotdog"},{" Club"},{"Freight"}, {"Trailer 3"},{"Andromada"},{"Dodo"},{"RC Cam"},{"Launch"},{"Police LSPD"},{"Police SFPD"}, {"Police LVPD"},{"Police Ranger"},{"Picador"},{"S.W.A.T"},{"Alpha"},{"Phoenix"},{" Glendale"}, {"Sadler"},{"Trailer A"},{"Trailer B"},{"Trailer"},{"Boxville"},{"Farm Plow"}, {"Utility"} };
Теперь установим кнопки для того чтобы включить или выключить двигатель или ограничитель скорости
В паблик OnPlayerKeyStateChange
if(newkeys & KEY_ACTION)//запускаем машину(LCTRL) { if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1; if(Engine[GetPlayerVehicleID(playerid)] == false) { GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective); SetVehicleParamsEx(GetPlayerVehicleID(playerid),VEHICLE_PARAMS_ON,VEHICLE_PARAMS_ON,alarm,doors,bonnet, boot,objective); Engine[GetPlayerVehicleID(playerid)] = true; Lights[GetPlayerVehicleID(playerid)] = true; } else { GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective); SetVehicleParamsEx(GetPlayerVehicleID(playerid),VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF,alarm,doors,bonnet, boot,objective); Engine[GetPlayerVehicleID(playerid)] = false; Lights[GetPlayerVehicleID(playerid)] = false; } } if(newkeys == 4096) //Num 2(вкл/выкл ограничитель скорости) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { if(MaxSpeed[playerid] == true) MaxSpeed[playerid] = false; else if(MaxSpeed[playerid] == false) MaxSpeed[playerid] = true; } } if(newkeys & KEY_SUBMISSION)//включаем фары { if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1; if(Engine[GetPlayerVehicleID(playerid)] == false) return SendClientMessage(playerid, -1, "Вы должны завести двигатель!"); if(Lights[GetPlayerVehicleID(playerid)] == false) { GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective); SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective); Lights[GetPlayerVehicleID(playerid)] = true; SetLights(playerid, true); } else { GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective); SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective); Lights[GetPlayerVehicleID(playerid)] = false; SetLights(playerid, false); } }
Сообщение отредактировал Ukrainian: 08 мая 2016 — 13:53
Спидометр
Комментарии
чёткий спидометр!
User #262248
2012-12-01 23:33:57
вот если был-бы скрипт который меняет спидометры в зависимости от модели…
ах да забыл, мод супер,
User #247841
2012-12-02 00:27:34
Самый лучший спидак-НИШТЯК!
User #228758
2012-12-02 11:43:01
Скажи мне пожалуйста автор!А почему у меня спидометр ваще больше карты и не как у тебя на скрине, у тебя на скрине он идет четко вокруг карты!А у меня нет!!!!!!
User #228758
2012-12-02 16:19:36
А если радар убрать, спидак тоже пропадёт?
User #196747
2012-12-02 17:23:56
Ну не знаю! Проверь если тебе интересно!
User #284412
2014-06-07 17:24:44
Жаль на щирокоформатный не идет спидометр растянутый получается(
User #243338
2012-12-02 17:42:06
Аххах потому что должен стоять мод HUD MOD Из gta 4 версии 1.2
Эта модификация дополнения моду HUD V 1.2
Как на скриншоте!
User #130962
2012-12-02 18:57:33
Спидометр понравился, но
должен стоять мод HUD MOD Из gta 4 версии 1.2
.
User #289236
2012-12-03 20:37:35
Да
User #130962
2012-12-04 08:08:33
Когда ставишь HUD MOD тогда и радар растягивается вместе со спидометром так что всеже это только для ноутбука не годиться
User #243338
2012-12-07 22:53:19
User #342442
2013-01-21 06:09:40
СУПЕР СПАСИБО ЭТОМУ САЙТУ Я БЛАГОДОРЯ ВСЕМ МОДАМ И ТАЧКАМ СКОРО ВЫПУЩУ ИГРУ »GTA SA СССР+РОССИЯ»ПРИМЕРНАЯ ДАТА-26.07.2013
User #382201
2013-03-26 16:30:22
То что надо, дешево и сердито
User #313261
2013-04-08 18:44:33
херь великая на разрешении 1280х1024
херь великая на разрешении 1280х1024
User #409810
2013-04-13 09:29:45
По моему мнения самым распространённым гейммодом для основы является GodFather. Я решил сделать себе спидометр на TextDraw’s, немного погуглив я нашёл приличный спидометр и слегка переделал его, изменив формулу нахождения скорости авто на более реальную и добавив информацию о статусе двигателя и замка авто(открыто/закрыто). Вот решил поделиться с вами, p.s. первый раз выкладываю свои сис-мы, не заваливайте минусами .
—
Для начала объявим все переменные для текстдравов и прочего, для этого ко всем new добавляем
Код: Выделить всё
new Float:VehicleHealth; // Переменная для определения хп кара
new obnvseed[64],obnvseed1[64],obnvseed2[64],doorstatus[30];; // Переменный для обновления текстдравов
new enstatus[30] // переменная для обновления статуса двигателя(заведён/заглушён), если у вас нет системы двигателя, не нужно заводить его, то не объявляем эту переменную ака не добавляем new Text:TIC; // TextDraw Info for Cars
new Text:TIV; // TextDraw Info for BMX
new Text:THC[MAX_PLAYERS]; // TextDraw Health for Cars
new Text:TFC[MAX_PLAYERS]; // TextDraw Fuel for Cars
new Text:TSC[MAX_PLAYERS]; // TextDraw Speed for Cars & BMX
new Text:TEC[MAX_PLAYERS]; // TextDraw Engine for Cars // если нет системы двигателя то удаляем эту строку
new Text:TDC[MAX_PLAYERS]; // TextDraw Doors for Cars
new Text:THV[MAX_PLAYERS]; // TextDraw Health for BMX В public OnGameModeInit() создаём наши текстдравы и ставим таймер для обновления
TIC
= TextDrawCreate(14,290,"~y~Health:~n~Fuel:~n~Speed:");
TextDrawFont(TIC,1);
TextDrawBackgroundColor(TIC,COLOR_BLACK);
TextDrawSetOutline(TIC,1);
TextDrawSetShadow(TIC,1);
TIV = TextDrawCreate(14,300,"~y~Health:~n~Speed:");
TextDrawFont(TIV,1);
TextDrawBackgroundColor(TIV,COLOR_BLACK);
TextDrawSetOutline(TIV,1);
TextDrawSetShadow(TIV,1);
for(new i = 0; i < MAX_PLAYERS; i++)
{
THC[i] = TextDrawCreate(80,290,"~w~0%");
TFC[i] = TextDrawCreate(60,300,"~g~0%");
TSC[i] = TextDrawCreate(75,310,"~w~0 km/h");
TEC[i] = TextDrawCreate(15,320,"~r~En"); // если у вас нет системы двигателя удаляем эту строку
TDC[i] = TextDrawCreate(50,320,"~g~UnLock");
TextDrawBackgroundColor(TFC[i],COLOR_BLACK);
TextDrawBackgroundColor(TSC[i],COLOR_BLACK);
TextDrawBackgroundColor(THC[i],COLOR_BLACK);
TextDrawBackgroundColor(TEC[i],COLOR_BLACK); // если у вас нет системы двигателя удаляем эту строку
TextDrawBackgroundColor(TDC[i],COLOR_BLACK);
TextDrawFont(TFC[i],1);
TextDrawFont(TSC[i],1);
TextDrawFont(THC[i],1);
TextDrawFont(TEC[i],1); // если у вас нет системы двигателя удаляем эту строку
TextDrawFont(TDC[i],1);
TextDrawSetOutline(TFC[i],1);
TextDrawSetOutline(TSC[i],1);
TextDrawSetOutline(THC[i],1);
TextDrawSetOutline(TEC[i],1); // если у вас нет системы двигателя удаляем эту строку
TextDrawSetOutline(TDC[i],1);
TextDrawSetShadow(TFC[i],1);
TextDrawSetShadow(TSC[i],1);
TextDrawSetShadow(THC[i],1);
TextDrawSetShadow(TEC[i],1); // если у вас нет системы двигателя удаляем эту строку
TextDrawSetShadow(TDC[i],1);
THV[i] = TextDrawCreate(80,300,"~w~0%");
TextDrawBackgroundColor(THV[i],COLOR_BLACK);
TextDrawFont(THV[i],1);
TextDrawSetOutline(THV[i],1);
TextDrawSetShadow(THV[i],1);
}
SetTimer("SpeedUpdate",150,1); // таймер для обновления В public OnPlayerStateChange(playerid, newstate, oldstate) добавим скрытие текстдравов если игрок покинул машину ака стал пешеходом и так-же показываем спидометр если он водитель if(newstate == PLAYER_STATE_ONFOOT) // скрываем если покидает
{
TextDrawHideForPlayer(playerid,TIC);
TextDrawHideForPlayer(playerid,TIV);
TextDrawHideForPlayer(playerid,THC[playerid]);
TextDrawHideForPlayer(playerid,TFC[playerid]);
TextDrawHideForPlayer(playerid,TSC[playerid]);
TextDrawHideForPlayer(playerid,THV[playerid]);
TextDrawHideForPlayer(playerid,TEC[playerid]); // если у вас нет системы двигателя удаляем эту строку
TextDrawHideForPlayer(playerid,TDC[playerid]);
return 1;
}
if(newstate == PLAYER_STATE_DRIVER) // показываем
{
if(!IsABMX(newcar)) // если игрок садиться в любой кар кроме велосипеда
{
TextDrawShowForPlayer(playerid,TIC);
TextDrawShowForPlayer(playerid,THC[playerid]);
TextDrawShowForPlayer(playerid,TFC[playerid]);
TextDrawShowForPlayer(playerid,TEC[playerid]); // если у вас нет системы двигателя удаляем эту строку
TextDrawShowForPlayer(playerid,TDC[playerid]);
}
else // если игрок садиться в велосипед
{
TextDrawShowForPlayer(playerid,TIV);
TextDrawShowForPlayer(playerid,THV[playerid]);
}
TextDrawShowForPlayer(playerid,TSC[playerid]);
return 1;
} Теперь в конец мода добавляем сток для определения скорости(км/ч) и обновления текстдравов
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)) * 170.3;
return floatround(ST[3]);
}
forward SpeedUpdate();
public SpeedUpdate()
{
for(new i; i < GetMaxPlayers(); i++)
{
if(IsPlayerInAnyVehicle(i))
{
new vehicle = GetPlayerVehicleID(i);
GetVehicleHealth(GetPlayerVehicleID(i),VehicleHealth);
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vehicle,engine,lights,alarm,doors,bonnet,boot,objective);
if(!IsABMX(vehicle)) // для всех каров кроме велосипедов
{
format(obnvseed2,64,"~w~%.0f%",VehicleHealth/10);
if(Gas[vehicle] > 10)
{
format(obnvseed,64,"~g~%d%",Gas[vehicle]);
}
else
{
format(obnvseed,64,"~r~%d%",Gas[vehicle]);
}
TextDrawSetString(THC[i],obnvseed2);
TextDrawSetString(TFC[i],obnvseed);
TextDrawSetString(TEC[i],enstatus); // если у вас нет
системы двигателя удаляем эту строку
if(gCarLock[vehicle] == 1) { format(doorstatus,30,"~r~Lock"); }
else { format(doorstatus,30,"~g~UnLock"); }
}
else // для велосипеда
{
format(obnvseed2,64,"~w~%.0f%",VehicleHealth/10);
TextDrawSetString(THV[i],obnvseed2);
}
format(obnvseed1,64, "~w~%d km/h",SpeedVehicle(i));
TextDrawSetString(TSC[i],obnvseed1);
}
}
}
return 1;
} Если у вас нет распределения каров по типам(велосипеды, обычные авто, лодки, лётные т/с), то вставляем и этот паблик
stock IsABMX(carid)
{
new model = GetVehicleModel(carid);
if(model==509||model==481||model==510)
{
return 1;
}
return 0;
}
Привет!
Выкладывал TD спидометра, и решил выложить систему для данного спидометра.
Приступим:
Для начала, добавьте сам TD спидометра себе в мод. (Добавлять нужно в OnPlayerConnect)
Теперь, добавим остальные части, которые нам понадобятся:
PHP:
// В конец мода
stock VehicleSpeed(carid)
{
new Float:X, Float:Y, Float:Z;
GetVehicleVelocity(carid,X,Y,Z);
return floatround( floatsqroot( X * X + Y * Y + Z * Z ) * 180.0 );
}
// В начало мода:
new VehicleName[212][25] =
{
"Landstalker",
"Bravura",
"Buffalo",
"Linerunner",
"Perenniel",
"Sentinel",
"Dumper",
"Firetruck",
"Trashmaster",
"Stretch",
"Manana",
"Infernus",
"Voodoo",
"Pony",
"Mule",
"Cheetah",
"Ambulance",
"Leviathan",
"Moonbeam",
"Esperanto",
"Taxi",
"Washington",
"Bobcat",
"Mr Whoopee",
"BF Injection",
"Hunter",
"Premier",
"Enforcer",
"Securicar",
"Banshee",
"Predator",
"Bus",
"Rhino",
"Barracks",
"Hotknife",
"Article Trailer",
"Previon",
"Coach",
"Cabbie",
"Stallion",
"Rumpo",
"RC Bandit",
"Romero",
"Packer",
"Monster",
"Admiral",
"Squallo",
"Seasparrow",
"Pizzaboy",
"Tram",
"Article Trailer 2",
"Turismo",
"Speeder",
"Reefer",
"Tropic",
"Flatbed",
"Yankee",
"Caddy",
"Solair",
"Berkley's RC Van",
"Skimmer",
"PCJ-600",
"Faggio",
"Freeway",
"RC Baron",
"RC Raider",
"Glendale",
"Oceanic",
"Sanchez",
"Sparrow",
"Patriot",
"Quad",
"Coastguard",
"Dinghy",
"Hermes",
"Sabre",
"Rustler",
"ZR-350",
"Walton",
"Regina",
"Comet",
"BMX",
"Burrito",
"Camper",
"Marquis",
"Baggage",
"Dozer",
"Maverick",
"SAN News Maverick",
"Rancher",
"FBI Rancher",
"Virgo",
"Greenwood",
"Jetmax",
"Hotring Racer",
"Sandking",
"Blista Compact",
"Police Maverick",
"Boxville",
"Benson",
"Mesa",
"RC Goblin",
"Hotring Racer",
"Hotring Racer",
"Bloodring Banger",
"Rancher",
"Super GT",
"Elegant",
"Journey",
"Bike",
"Mountain Bike",
"Beagle",
"Cropduster",
"Stuntplane",
"Tanker",
"Roadtrain",
"Nebula",
"Majestic",
"Buccaneer",
"Shamal",
"Hydra",
"FCR-900",
"NRG-500",
"HPV1000",
"Cement Truck",
"Towtruck",
"Fortune",
"Cadrona",
"FBI Truck",
"Willard",
"Forklift",
"Tractor",
"Combine Harvester",
"Feltzer",
"Remington",
"Slamvan",
"Blade",
"Freight",
"Brownstreak",
"Vortex",
"Vincent",
"Bullet",
"Clover",
"Sadler",
"Firetruck LA",
"Hustler",
"Intruder",
"Primo",
"Cargobob",
"Tampa",
"Sunrise",
"Merit",
"Utility Van",
"Nevada",
"Yosemite",
"Windsor",
"Monster A",
"Monster B",
"Uranus",
"Jester",
"Sultan",
"Stratum",
"Elegy",
"Raindance",
"RC Tiger",
"Flash",
"Tahoma",
"Savanna",
"Bandito",
"Freight Flat Trailer",
"Streak Trailer",
"Kart",
"Mower",
"Dune",
"Sweeper",
"Broadway",
"Tornado",
"AT400",
"DFT-30",
"Huntley",
"Stafford",
"BF-400",
"Newsvan",
"Tug",
"Petrol Trailer",
"Emperor",
"Wayfarer",
"Euros",
"Hotdog",
"Club",
"Freight Box Trailer",
"Article Trailer 3",
"Andromada",
"Dodo",
"RC Cam",
"Launch",
"Police Car (LSPD)",
"Police Car (SFPD)",
"Police Car (LVPD)",
"Police Ranger",
"Picador",
"Police SF.",
"Alpha",
"Phoenix",
"Glendale Shit",
"Sadler Shit",
"Baggage Trailer A",
"Baggage Trailer B",
"Tug Stairs Trailer",
"Boxville",
"Farm Trailer",
"Utility Trailer"
};
enum vInfo // Можно заменить на свою
{
vFuel,
bool:vEngine,
bool:vDoors,
bool:vLights,
Float:vMileage
};
new VehInfo[MAX_VEHICLES][vInfo];
new bool: GPS[MAX_PLAYERS]; // GPS
new Float: VehMilage[MAX_VEHICLES]; // Тоже для пробега
new SpeedometrTimer[MAX_PLAYERS];
В OnPlayerConnect:
PHP:
GPS[playerid] = false;
KillTimer(SpeedometrTimer[playerid]);
В OnGameModeInit:
PHP:
ManualVehicleEngineAndLights();
for(new i; i < MAX_VEHICLES; i ++) // Необходимо вставлять после всего созданных Вами транспорта
{
VehInfo[i][vFuel] = 100;
VehInfo[i][vEngine] = false;
VehInfo[i][vLights] = false;
VehInfo[i][vDoors] = false;
VehInfo[i][vMileage] = 0;
}
Показываем спидометр игроку при посадке в транспорт, в OnPlayerStateChange:
PHP:
if(newstate == PLAYER_STATE_DRIVER)
{
for(new i; i < 27; i ++) PlayerTextDrawShow(playerid, Speedometr[i][playerid]);
SpeedometrTimer[playerid] = SetTimerEx("UpdateSpeedometr", 50, true, "ii", playerid, GetPlayerVehicleID(playerid));
}
if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER)
{
for(new i; i < 27; i ++) PlayerTextDrawHide(playerid, Speedometr[i][playerid]);
KillTimer(SpeedometrTimer[playerid]);
}
Создаем паблик и стоки, где и будет весь функционал нашего спидометра, с любое место:
PHP:
forward UpdateSpeedometr(playerid, carid);
public UpdateSpeedometr(playerid, carid)
{
new Float: health, string[70];
GetVehicleHealth(carid, health);
VehInfo[carid][vFuel] -= 0.001;
format(string, sizeof(string), "%d", floatround(health, floatround_tozero));
PlayerTextDrawSetString(playerid, Speedometr[13][playerid], string); // ХП
format(string, sizeof(string), "%d", floatround(VehInfo[carid][vFuel], floatround_tozero));
PlayerTextDrawSetString(playerid, Speedometr[17][playerid], string); // FUEL
if(GPS[playerid]) PlayerTextDrawSetString(playerid, Speedometr[19][playerid], FixText("ВКЛ")); // GPS
else PlayerTextDrawSetString(playerid, Speedometr[19][playerid], FixText("ВЫКЛ"));
format(string, sizeof(string), "%s", VehicleName[GetVehicleModel(carid)-400]):
PlayerTextDrawSetString(playerid, Speedometr[26][playerid], string); // Name Veh
if(VehicleSpeed(carid) > 0)
{
VehMilage[carid] += float(VehicleSpeed(carid))/20.0;
if(VehMilage[carid] >= 3000.0)
{
VehMilage[carid] = 0.0;
VehInfo[carid][vMileage] += 1.0;
format(string, sizeof(string), "%06.0f", VehInfo[carid][vMileage]);
PlayerTextDrawSetString(playerid, Speedometr[21][playerid], string);
}
string = "";
for(new dspeed; dspeed < floatround((17.0/200.0)*float(VehicleSpeed(car))) && dspeed<15; dspeed++)
{
switch(dspeed)
{
case 5: format(string, sizeof(string), "%s~b~", string);
case 10: format(string, sizeof(string), "%s~r~", string);
}
format(string, sizeof(string), "%sI", string);
}
PlayerTextDrawSetString(playerid, Speedometr[8][playerid], string);
format(string, sizeof(string), "%d", VehicleSpeed(carid));
PlayerTextDrawSetString(playerid, Speedometr[20][playerid], string); // Скорость
}
else
{
PlayerTextDrawSetString(playerid, Speedometr[8][playerid], "_");
PlayerTextDrawSetString(playerid, Speedometr[20][playerid], "0";
}
return true;
}
stock SetEngine(carid, bool:status, playerid=-1)
{
GetVehicleParamsEx(carid, engine, lights, alarm, doors, bonnet, boot, objective);
VehInfo[carid][vEngine] = status;
SetVehicleParamsEx(carid, status, lights, alarm, doors, bonnet, boot, objective);
if(playerid != -1 && IsPlayerInAnyVehicle(playerid))
{
PlayerTextDrawHide(playerid, Speedometr[12][playerid]);
if(VehInfo[carid][vEngine]) PlayerTextDrawColor(playerid, Speedometr[12][playerid], 16711935);
else PlayerTextDrawColor(playerid, Speedometr[12][playerid], -16776961);
PlayerTextDrawShow(playerid, Speedometr[12][playerid]);
}
return true;
}
stock SetLights(carid, bool:status, playerid=-1)
{
GetVehicleParamsEx(carid, engine, lights, alarm, doors, bonnet, boot, objective);
VehInfo[carid][vLights] = status;
SetVehicleParamsEx(carid, engine, status, alarm, doors, bonnet, boot, objective);
if(playerid != -1 && IsPlayerInAnyVehicle(playerid))
{
PlayerTextDrawHide(playerid, Speedometr[15][playerid]);
if(VehInfo[carid][vLights]) PlayerTextDrawColor(playerid, Speedometr[15][playerid], 16711935);
else PlayerTextDrawColor(playerid, Speedometr[15][playerid], -16776961);
PlayerTextDrawShow(playerid, Speedometr[15][playerid]);
}
return true;
}
stock SetDoors(carid, bool:status, playerid=-1)
{
GetVehicleParamsEx(carid, engine, lights, alarm, doors, bonnet, boot, objective);
VehInfo[carid][vDoors] = status;
SetVehicleParamsEx(carid, engine, lights, alarm, status, bonnet, boot, objective);
if(playerid != -1 && IsPlayerInAnyVehicle(playerid))
{
PlayerTextDrawHide(playerid, Speedometr[14][playerid]);
if(VehInfo[carid][vDoors]) PlayerTextDrawColor(playerid, Speedometr[14][playerid], 16711935);
else PlayerTextDrawColor(playerid, Speedometr[14][playerid], -16776961);
PlayerTextDrawShow(playerid, Speedometr[14][playerid]);
}
return true;
}
Ну вот в принципе и все. Если вы захотите завести игроку машину используйте SetEngine, с дверями и фарами так же. (P/S: Если хотите завести машину/фары/двери, где нет игрока, тогда не пишите айди.)
Саму работу не тестил, т.к не было времени, но если вы нашли баг/ошибку/недоработку, то отпишите в данную тему, исправлю.
P/S: Если у вас есть система GPS, то поставьте GPS[playerid] = true; туда, где игрок выбирает место (например мэрия), и GPS[playerid] = false; там, где он уже прибывает на то место или же отключает GPS;
Если вам понравилась данная работа, или вы взяли её себе, то поблагодарите автора, нажав кнопку «Спасибо»
Приветствую, друзья..
Хочу показать вам свой первый спидометр, который делал минут 3-5..
-Скриншот
Внизу, в закрепленных файлах
Код:
new Text:Textdraw0;
new Text:Textdraw1;
new Text:Textdraw2;
new Text:Textdraw3;
new Text:Textdraw4;
Textdraw0 = TextDrawCreate(635.000000, 372.344451, «usebox»);
TextDrawLetterSize(Textdraw0, 0.000000, 6.957406);
TextDrawTextSize(Textdraw0, 480.500000, 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(485.000000, 371.466674, «CKOPOC© : 100 K®/¤»);
TextDrawLetterSize(Textdraw1, 0.307499, 1.786666);
TextDrawAlignment(Textdraw1, 1);
TextDrawColor(Textdraw1, -1);
TextDrawSetShadow(Textdraw1, 0);
TextDrawSetOutline(Textdraw1, 1);
TextDrawBackgroundColor(Textdraw1, 51);
TextDrawFont(Textdraw1, 2);
TextDrawSetProportional(Textdraw1, 1);
Textdraw2 = TextDrawCreate(485.500000, 387.022247, «Eìì : 100 POB
«);
TextDrawLetterSize(Textdraw2, 0.318999, 1.768000);
TextDrawAlignment(Textdraw2, 1);
TextDrawColor(Textdraw2, -1);
TextDrawSetShadow(Textdraw2, 0);
TextDrawSetOutline(Textdraw2, 1);
TextDrawBackgroundColor(Textdraw2, 51);
TextDrawFont(Textdraw2, 2);
TextDrawSetProportional(Textdraw2, 1);
Textdraw3 = TextDrawCreate(485.500000, 404.444458, «£POE : 10000K®»);
TextDrawLetterSize(Textdraw3, 0.377000, 1.556444);
TextDrawAlignment(Textdraw3, 1);
TextDrawColor(Textdraw3, -1);
TextDrawSetShadow(Textdraw3, 0);
TextDrawSetOutline(Textdraw3, 1);
TextDrawBackgroundColor(Textdraw3, 51);
TextDrawFont(Textdraw3, 2);
TextDrawSetProportional(Textdraw3, 1);
Textdraw4 = TextDrawCreate(485.500000, 419.377807, «AOK : AKP¨»);
TextDrawLetterSize(Textdraw4, 0.404500, 1.525333);
TextDrawAlignment(Textdraw4, 1);
TextDrawColor(Textdraw4, -1);
TextDrawSetShadow(Textdraw4, 0);
TextDrawSetOutline(Textdraw4, 1);
TextDrawBackgroundColor(Textdraw4, 51);
TextDrawFont(Textdraw4, 2);
TextDrawSetProportional(Textdraw4, 1);
Автор: Я, @minvaleev116.
Do you want to be the first to know about new Speedometers for GTA San Andreas?
Recommended files
Speedometers for GTA San Andreas: various mods of speedometers and their textures in GTA San Andreas
Sort:
Files have been sorted by downloads in ascending order
- 1
- 2
- 3
- 4
- 5
- 6
- …
- 27
-
Next
Speedo2077
Speedo2077 for GTA San Andreas A speedometer of the future! This modification adds to the game quality speedometer, taken from the game Cyberpunk 2077. It is made according to the style 1 to 1. v0.3 — Subcategory of vehicles supported by the mod u…
SpeedoSA Night Speedometer
SpeedoSA Night Speedometer для GTA San Andreas I made these textures for the speedometer a while ago, it goes perfectly with my other mod called Gear Control. There are several colors to taste and choose from. …
Unique speedometer
Unique speedometer for GTA San Andreas The mod includes: — Accurate speedometer; — Gasoline sensor (enough for a long time…); — Tachometer; — Engine temperature; — Transmission indicator; — Headlight indicator; — Handbrake indicator; — …
SpeedoSA v1.0.2 + Pack of skins
Author:
fastman92, O!nkO!nk, Junior_Djjr, Nex’
Simple and unobtrusive speedometer. This is one of the few speedometers that calculates speed correctly. Fully compatible with all monitor formats. Changes in version 1.0.2: — Fixed speed calculation bug. Now the speedometer really correctly calcu…
Speedometer GTA SA Style
Speedometer GTA SA Style for Gta San Andreas The archive contains the 2nd version of the speedometer 16×9 — wide screen version 4×3 — For 4×3 monitors (1024×768) Speedometer drawn by me «from scratch» — Good quality (at the same time it weighs little…
Speedometer from Need For Speed Underground 2
I present to you my twenty-fourth work — Speedometer from Need For Speed Underground 2! The quality of the speedometer has not changed! Installation: — Move SPU2.txd to models/txd/ — Move SPU2.cs to CLEO/ Comment, Like! P.S I didn’t do it to measu…
Speedometer Concept Style
Speedometer Concept Style for Gta San Andreas The archive contains the 2nd version of the speedometer V16x9 — widescreen version V4x3 — For 4×3 monitors (1024×768) Speedometer drawn by me «from scratch» — Good quality — Translucent — Up to 310 km/h -…
New speedometer
New speedometer from a foreign master! * Original. * Good quality. * There is a digital and pointer speedometer. Everything is working. Bugs did not notice. ================================================= === Bringing great music to the masses! I …
Speedometer 4.1.5v
New speedometer version 4.1.5. * Original. * Good quality. * Breaks down. * No brand of car is indicated, which in my opinion is a huge plus. ================================================= === We bring great music to the masses! I uploaded a gre…
- 1
- 2
- 3
- 4
- 5
- 6
- …
- 27
-
Next
Speedometers for GTA San Andreas: various mods of speedometers and their textures in GTA San Andreas