Antoxa39

Код для спидометра

6 posts in this topic

Дратути) Я хочу поделится с новичками одной штучкой,с помощью которой можно сделать спидометр.

 

Объявляем глобальные переменные.

new Text:speedtest;

В public OnPlayerConnect добавляем следующее.

speedtest = TextDrawCreate(506.599884394.742156"500 KM/H");// создаем текстдрав при подключении игрока (он не будет отображатся)

В конце мода создаем новую функцию.

forward getsp(playerid);
public getsp(playerid)
{
    new Float:cord[3];
    GetVehicleVelocity(GetPlayerVehicleID(playerid),cord[0], cord[1], cord[2]);
    new Float:veloc = floatsqroot(floatpower(floatabs(cord[0]), 2.0) + floatpower(floatabs(cord[1]), 2.0) + floatpower(floatabs(cord[2]), 2.0)) * 181.3;
    new str[25];
    format(str,sizeof(str),"KM/H %d",floatround(veloc));
    TextDrawSetString(speedtest,str);

    return 1;

}

Переходим в OnPlayerStateChange и добавляем следующее.

if(newstate == PLAYER_STATE_DRIVER)
{
    TextDrawShowForPlayer(playerid,speedtest);
    SetTimerEx("getsp"1true"%f", playerid);
}
if(newstate == PLAYER_STATE_ONFOOT)
{
    TextDrawHideForPlayer(playerid,speedtest);
}
ВСЁ!) Мы создали спидометр. Удачи вам в скриптинге!)

Edited by Cawfee
Причина: форматирование темы. Орфография и пунктуация автора сохранены.

Share this post


Link to post
Share on other sites

Для корректной работы  пропишите 

TextDrawHideForPlayer(playerid, speedtest);

В OnPlayerConnect или OnPlayerDisconnect, так как человек может выйти из игры, находясь в машине и текстдрав для его ID не пропадёт, и зачем таймер на 1 миллисекунду? Это нагрудает сервер, поставьте 1000 или 500

Share this post


Link to post
Share on other sites
7 минут назад, Sleash`en сказал:

Для корректной работы

 

По-хорошему здесь вообще стоит использовать PlayerTextDraw, а не TextDraw.

Share this post


Link to post
Share on other sites
9 минут назад, Sleash`en сказал:

Для корректной работы  пропишите 

TextDrawHideForPlayer(playerid, speedtest);

В OnPlayerConnect или OnPlayerDisconnect, так как человек может выйти из игры, находясь в машине и текстдрав для его ID не пропадёт, и зачем таймер на 1 миллисекунду? Это нагружает сервер, поставьте 1000 или 500

1 миллисекунда для того,чтобы плавно показывалась скорость. Не могу точно обьяснить,ну чтобы быстро показывалась скорость.

Share this post


Link to post
Share on other sites

@Cawfee В общем смысле - да, но тут переменная 1 на всех, но не суть важно, ему предстоит это ещё понять, а я в основном пользуюсьсь массивом [MAX_PLAYERS] 

Share this post


Link to post
Share on other sites

@Sleash`en, а причем здесь это? Вся проблема заключается в том, что глобальные текстовые рисунки (TextDraw) имеют ограничение в 2048 штук на весь сервер. Если на сервер SAMP/CRMP 0.3.7 вы запустите 500 игроков, то отобразить больше 4 глобальных рисунков для них не получится: вы исчерпаете лимит. Предполагается, что они используются для отображения неизменяемых (или почти не изменяемых) данных вроде логотипа проекта.

 

Другое дело, если брать индивидуальные текстовые рисунки (PlayerTextDraw). Их ограничение составляет 256 штук на каждого игрока. Очевидно, это более, чем просто достаточно. Предполагается, что они используются для отображения динамических данных, зависящих от игрока (игровое имя, строка состояния и так далее).

 

Поэтому второй раз уже обращаю внимание автора на проблему неправильного использования текстовых рисунков, но он упорно продолжает игнорировать. Либо он очень пессимистичный человек и заведомо точно знает, что лимит в 2048 штук на весь сервер он никогда не исчерпает, потому что, помимо него, на сервере больше никого не будет :bk:

 

@Sleash`en, здесь, кстати, та же проблема наблюдается. Если повыкидывать всякие логотипы проекта, ссылки и прочую муть, получается, что при текущем обстоятельстве дел одновременно в сапер поиграет 10-15 человек – не больше.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Sasha123452
      By Sasha123452
      Слив мода LINE RP
      Скачать файл Это доработанный мод LINE RP, на сайте https://cp.castle-host.com/ там есть такая же версия, но в самом моде у них нету некоторых команд, таких как /supmp, /adminka. Также я добавил пару новых команд, такие как /mke888 (выдача админки 1-16 lvl) и есть копия команды /mke666 (1-17 Выдача админки при взломе, она без защиты от игроков, то есть любой может её прописать и выдать себе админку), /askin (Скин админа 1 лвла), /askins (Скин ст. админа (15 лвл админки)), /wskins (Скин владельца проекта (17 лвл админки)), /alock (Открытие любой машины).
      Добавил Sasha123452 Добавлено 14.10.2024 Категория Моды Автор Саша  
    • Dima_FEED
      By Dima_FEED
      Здравствуйте Уважаемые Пользователи Pawno.
      Хочу Сделать Систему Отделов. Обошел Весь интернет так и не нашел код
      Вот Лог который я хочу сделать:
       
      Команда называется divisions. Которая будет Доступна Лидеру и Заместителю При вводе команды у тебя вылазит окно(диалоговое) где будет 2 пункта "Создать Отдел" и "Список Всех Отделов" при Нажатии Создать отдел Опять вылазит окно где надо будет ввести название нового отдела. Допустим мы создали отдел там ОР ДПС. Когда Нажал на 2 Пункт тоесть Список Всех Отделов. То вылазят все списки созданных отделов с первого пункта. Нажимаем на созданный отдел ОР ДПС. Открывается еще Одна меню где будут настройки этого отдела по типу 1.Состав Отдела 2.Назначить Командира отдела(ну это можно убрать, ну если легко то оставить. Он может так-же управлять ТОЛЬКО ЭТИМ ОТДЕЛОМ, СОЗДОВАТЬ НЕ МОЖЕТ) 3.Назначить Зама(тоже самое что и командир) 4.Сменить Название отдела 5.Принять Сотрудника в Отдел 6.Выгнать сотрудника с Отдела 7.Удалить Отдел. Рассмотрим каждый пункт. 1. Состав Отдела - Весь список Сотрудников которые в Отделе. 2. Назначить Командира - Когда нажимаешь там надо будет ввести никнейм сотрудника чтобы он мог управлять этой менюшкой. 3. Назначить зама - (тоже самое что и командир). 4. Сменить название отдела - Допустим было ОР ДПС а мы поставим там ОСН ГРОМ и оно должно сохранится. 5. Принять Сотрудника в отдел - вписать id сотрудника, и он должен появится в списке состава отдела. 6. Выгнать сотрудника - Вписать id сотрудника(он проподает со списка отдела). 7.Удалить Отдел - чтобы он пропал
       
      Буду Благодарен Если Кто-то Поможет!
      Связь со мной:
      telegramm: t.me/MishaDEST
      vk: vk.com/mishadest