Warning ignoring large textdraw size как исправить самп

PanSeek


  • #2

Извиняюсь конечно, но ник-нейм твой не подходит. Система обычно дает больше информации.

SYSTEM


  • #3

Извиняюсь конечно, но ник-нейм твой не подходит. Система обычно дает больше информации.

извиняюсь но я ничо не понял

  • #4

Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Было бы лучше, если бы ты дал размер тексдрава.

Если у тебя стоит мвд хелпер — удали его.

А вообще варнинг говорит что какой-то скрипт конфликтует с тексдравом, мб ты поставил какой-то скрипт

  • #5

Было бы лучше, если бы ты дал размер тексдрава.

Если у тебя стоит мвд хелпер — удали его.

А вообще варнинг говорит что какой-то скрипт конфликтует с тексдравом, мб ты поставил какой-то скрипт

А если хочется играть с мвд хелпером, например я в пд работаю ??

  • #6

А если хочется играть с мвд хелпером, например я в пд работаю ??

Есть разные замены ему
Police helper: Project reborn
SnailMatic и т.д

  • #7

А если хочется играть с мвд хелпером, например я в пд работаю ??

Скинь папку cleo, moonloader, sf.
Если играешь с лаунчера:
-нажми починить игру
-установи обратно мвд хелпер.
Много скриптов с которыми мвд хелпер конфликует

  • #1

, ударяя человека не показывает серверный дамаг информер, а когда по мне дамаг идет все нормально, тоесть проблема с выводом инфы дамага по мне, как решить?

Don_Elino


  • #2

mvd helper есть?
или что-то подобное, скрипты сторонние

  • #3

mvd helper есть?
или что-то подобное, скрипты сторонние

скриптов, достаточно)
mvd хелпера нет

  • #4

Ну тут видно что это из за hud

Don_Elino


  • #5

в варнинге написано что текстдрав слишком большой. при гугле этой ошибки кидает на мвдхелпер
так что видимо какой-то скрипт мешает

AYAYAYA


  • #6

Данный пользователь был заблокирован.

удали свой pd project и все нормально будет

  • #7

удали свой pd project и все нормально будет

его нет так-то

AYAYAYA


  • #8

Данный пользователь был заблокирован.

а че за скрипт показывает ранги

  • #9

а че за скрипт показывает ранги

super members

AYAYAYA


  • #10

Данный пользователь был заблокирован.

Tsunoku_Mida


  • #12

офк из-за гтахи, зачем на такой в 2020 играть не известно


  1. 15.09.2014, 02:49


    #1

    Аватар для felix_font

    Пользователь


    Баг с размером текста в TextDraw

    На первый взгляд все кажется нормально:

    А если посмотреть на скоростях по больше, заметим неровность в конце:

    А если уж совсем приблизить, мы заметим полную неровность с самого начала и только в некоторых случаях стает ровно:

    А теперь вопрос, почему? И как исправить?
    По параметрам TextDraw’a они идентичны по всем параметрам.
    Разница только в цветах.

    Почему же такая неровность?
    Ведь дело в том, что я сделал для каждой машины индивидуальную макс.скорость и в зависимости от макс.скорости заполняются «ячейки».
    И так получается при макс. скорости заполняется не до конца (вроде 2 ячейки последние) — что полностью все портит.

    Как я и говорил, отличий в стиле TextDraw никаких нету, и также косяков в коде тоже нету, используется один и тот же символ для заполнения.
    Подозреваю только на то — что разные цвета, но… в других же вроде нету такого бага.. и тоже абсолютно разные цвета «ячеек» и чем оно заполняется.

    Какие есть варианты исправления бага?



  2. 15.09.2014, 07:17


    #2

    Всё же покажите код или объясните как вы всё это реализуете, ибо пока вы предлагаете нам с бубном танцевать.
    Например, расскажите расскрашиваете ли вы 1 и тот же текстдрав или действуете методом наложения?

    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю


    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема


    Steve Pavlina



  3. 15.09.2014, 18:32


    #3

    Аватар для felix_font

    Пользователь


    Метод наложения.

    Заполнение:

    PHP код:


    new min_speed floatround(GetVehicleMaxSpeed(vehicleid) / 28floatround_floor);
        new 
    curr_speed floatround(speed min_speedfloatround_round);
        
    //if(curr_speed > 28) curr_speed = 28;
        
    if(curr_speed 1curr_speed 1;

             if(

    speed == 0PlayerTextDrawSetString(playeridSM_Text[playerid][SM_CurSpeed], "");
        else
        {
            
    format(szTempmaxlen"");
            for(new 
    0curr_speedi++) strcat(szTemp"l"maxlen);
            
    PlayerTextDrawSetString(playeridSM_Text[playerid][SM_CurSpeed], szTemp);
        } 


    Состоит из 28 полосок, значит макс.скорость делим на 28 и округляем в меньшую сторону.
    Чтобы получить текущую скорость в полосках, делю текущую скорость транспорта на минимальную скорость для 1 полоски и округляю по типу floatround_round (в ту сторону какая ближе), ну а дальше заполнение циклом.



  4. 15.09.2014, 18:52


    #4

    А не проще ли создать 1 текстдрав и в нём уже изменять цвет нужных полосок?
    Ну а вообще, скорее всего, просто нужно убрать тень текстдрава или что-то подобное, из-за чего текстдрав чуть смещается в сторону. А так же попробовать убрать собейт из запуска и посмотреть как будет без него, ибо в нём что только не изменяется…

    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю


    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема


    Steve Pavlina



  5. 15.09.2014, 19:28


    #5

    Аватар для felix_font

    Пользователь


    Собейт отключил полностью и перезапустил игру.
    Результат такой же:

    По поводу 1 texdraw, выбор цветов очень сухой, этих ~g~, ~b~, ~h~ — никак не станет, цвет получается не очень приятный.

    Параметры TextDraw (серого):
    LetterSize = 0.338797, 1.858844
    Alignmenе = 1
    Color = -2139062017
    SetShadow = 0
    SetOutline = 1
    BackgroundColor = 51
    Font = 1
    SetProportional = 1

    Для цветного все так же, только:
    Color = 16777215



  6. 15.09.2014, 19:42


    #6

    Попробуйте для SetOutline и SetProportional установить нуль. Да и вообще, поиграйтесь с настройками (сделайте пару команд, которыми прямо в игре меняйте значение и смотрите результат). Я с текстдравами мало работал и не помню предназначения каждой функции, так что могу лишь подсказать то, что бы делал я сам :)

    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю


    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема


    Steve Pavlina


Andrinall


  • #1

aa_logo.png

Долго тянул с тем, чтобы выложить этот худ в паблик, а не скидывать кому-то как-то лично.
Работает ТОЛЬКО на сервере GHW Project.

Показ даты и времени(синхронизировано с серверными текстдравами)
Кастомный логотип.
Отображение таких параметров, как: Nickname, ID и Ping

Полоски статистик персонажа:
Синяя — кислород
Жёлтая — выносливость(пешком), ХП транспорта(за рулём)
Сероватая — Броня
Красная — ХП персонажа

HD иконки оружия с возможностью замены(но это не точно)
Отображение общего кол-ва патронов

Отображение денег на руках.

Отображение розыска
( Полученный розыск подсвечивается синими звёздами, если все серые — розыска нет )

Полоски потребностей:
Жёлтая — Усталость
Зелёная — Голод
Болотного цвета(что это за цвет вообще?) — Жажда.

Если все полоски на 100% или близко к тому — всё окей.
Если полоски уйдут ниже 50% или 10% — поменяется иконка возле соответствующей полоски.

/hudset - откроет окно настроек скрипта

Cкачать архив Скачать скрипт отдельно(для обновлений)
Инструкция по установке лежит внутри архива, в файле README.txt.

Автор скрипта: Andrinall
При публикации где-либо — указывайте ссылку …
… на эту тему, изначального автора скрипта.
logoBlue.png

Важно!

— Для корректной работы скрипта в настройках аккаунта, на сервере, обязательно должны быть включены следующие пункты:
1638524660749.png
— Для корректной работы скриптового спидометра, серверный спидометр должен находиться СПРАВА.

— Все вопросы или информацию о найденных багах можете писать — в этой теме, в VK( vk.me/glreallife ) или в Discord( Andrinall#5512 )
— В случае обращения с информацией о каком-либо баге в данном скрипте — нужно приложить:

скриншот или видео-запись проявления бага или moonloader.log, при падении(краше) скрипта.​

OFFTOP

( За качество картинки извиняюсь, чего только не мудрил с сглаживанием — ничего не помогло, пришлось просто блюром замазывать )

Последнее редактирование: 30.06.2022

Andrinall


  • #2

Hot Fix от 03.12.2021:

  • Исправлен редкий баг, при котором не регистрировалось время с серверных текстдравов, при этом выдавая самповские варнинги.
  • Исправлено выравнивание текста времени, при переключении между серверным и московским временем через настройки аккаунта.

    Обновлённый файл доступен для загрузки.

    Скачать

Последнее редактирование: 22.12.2021

Andrinall


  • #3

Fix от 21.12.2021:

  • Исправлено пропадание времени на худе при доставке скоропортящихся или иных грузов с ограничением времени доставки.

Обновлённый файл доступен для загрузки.​

Последнее редактирование: 22.12.2021

Andrinall


  • #4

Update от 4.02.2022

  • Исправлено возможное неправильное получение данных с текстдравов.
  • Исправлены некоторые моменты в коде, некоторые оптимизированы.
  • Переписана некоторая часть окна худа.
  • Добавлен спидометр. ( Некоторые иконки динамически изменяются в зависимости от значений )
  • Удалена команда /tHud
  • Добавлена команда /hudset ( настройки скрипта )
    • Настройка отображения трёх окон ( худ, потребности и спидометр )
    • Переключение безопасного режима интерфейса. ( Позволяет нажимать на текстдравы под интерфейсом. Перемещение интерфейса с этим режимом невозможно )
    • Настройка отображения шкалы скорости на спидометре.
    • Показаны условные обозначения на спидометре.

Внимание!

Для корректной работы спидометра, серверный спидометр должен находиться СПРАВА.

Если у вас будут проблемы с работой скрипта после установки — попробуйте выйти из игры и удалить файл по пути «moonloaderresourceGHWConfigsHud.json»

Обновлённый файл доступен для скачивания по кнопке ниже или в заголовке темы.​

Последнее редактирование: 04.02.2022

Andrinall


  • #5

Hot Fix
— Исправлены варнинги «Warning: ignoring large TextDraw size=*«, флудящие в чат, при посадке в авто, у некоторых игроков.
Файл обновлён, скачать можно в сообщении выше или в заголовке темы.
— Добавлена проверка, что игрок находится на водительском месте.

Последнее редактирование: 30.06.2022

Crisp


  • #6

Скачал архив со всеми файлами
При заходе на сервер худ работает, а вот как только я уже зашёл на сервер, то худ пропадает
sa-mp-030.png

Andrinall


  • #7

Скачал архив со всеми файлами
При заходе на сервер худ работает, а вот как только я уже зашёл на сервер, то худ пропадает
Посмотреть вложение 1073

После переезда сервера забыл пару строк заменить.
Обновил файлы.

Архив Скрипт отдельно


#1

Пользователь офлайн
 

Отправлено 19 января 2023 — 05:01

  • Прохожий

Прежде чем начать, извините за мой плохой русский, я бразилец, но бесспорно, что лучшие программисты-ломбарды и лучшие серверы в России.Это правда, я много лет был программистом Delphi, но у пешки есть отдельная трудность: отсутствие открытых дискуссий и решение проблем становится более сложным.

после начала использования «CProgress» включить

Изображение
Перейди по ссылке: https://github.com/f…s/cprogress.inc

Я пытался использовать этот плагин, но безрезультатно по ссылке: https://github.com/k…amp-td-streamer

Я пытался использовать этот плагин для снятия ограничения на отрисовку текста, но это не дало никакого эффекта, никаких ошибок, и только отрисовки текста отображаются пополам.

вот изображение моего круглого прогрессбара в первом все нормально 120 PlayerTextDraw нужно для сборки круглого прогрессбара, во втором видно что часть отсутствует, а в третьем даже не появляется
Изображение

Если кто знает как снять это ограничение с PlayerTextDraw буду признателен, знаю что это возможно так как видел на других серверах которые делали почти то же самое, заранее спасибо.

0



#2

Отправлено 19 января 2023 — 05:29

  • Evil Scripter

У SAMP существует несколько разных лимитов, связанных в TextDraw. Все их можно посмотреть, например, тут: https://team.sa-mp.c…iki/Limits.html

И всех их нельзя обойти в ситуации, если нужно одновременно показать больше TextDraw, чем позволяют эти лимиты. Единственное, что вы можете сделать — попытаться сделать так, что единовременно для игрока будет создано и показано меньше текстдравов, чем указано в этих лимитах. Например, если у вас есть другие системы, связанные с PlayerTextDraw, текстдравы которых в данный момент не отображаются — вы можете временно удалить все эти текстдравы, дабы освободить место для вашей системы. А когда нужно будет отобразить те текстдравы, что были удалены, вы сначала должны будете удалить текстдравы текущей вашей системы и только потом по новой создать те, что ранее были удалены. Только таким постоянным удалением не отображающихся текстдравов можно попытаться добиться отсутствия превышения лимитов. Собственно, плагин «TextDraw Streamer», ссылку на который вы дали выше, пытается реализовать именно такой подход к отображению PlayerTextDraw, избавляя скриптера от нужды делать это вручную. Но по собственным наблюдениям, ручной подход всегда будет эффективнее в ситуациях, когда количество текстдравов близко к лимитам.

P.S. Особое внимание советую обратить на лимит «sprites».

Изображение

Этот лимит в 100 текстдравов распространяется и на TextDraw, и на PlayerTextDraw. При этом, «спрайтами» считаются все текстдравы, которые отображают какие-либо игровые текстуры: это и PreviewModel, и непосредственно текстуры, указанные, например, как «LD_BEAT:chit». Очень важно не превысить данный лимит, так как его превышение не только не позволит отображать новые текстдравы, но и может привести к вылету игроков, для которых это превышение лимита произошло.

Сообщение отредактировал DeimoS: 19 января 2023 — 05:37

0



#3

Отправлено 19 января 2023 — 06:47

  • Профессионал

Просмотр сообщенияDeimoS (19 января 2023 — 05:29) писал:

Нажмите сюда, чтобы прочитать это сообщение. [

Показать

]

Добавь ещё может то, что в случае достижения определённого лимита показанных текстдравов(60-100) их загрузка может достигать нескольких секунд.

0



#4

Отправлено 19 января 2023 — 06:58

  • Прохожий

Изображение

В этом примере изображения сервер использует то же самое включение, которое я разместил выше, и ему удается сделать 5 круговых индикаторов выполнения, игнорируя ограничение сэмпа в 256, это то, что мне интересно знать, как это сделать, потому что я знаю, что можно игнорировать ограничение textdraw с помощью плагина, о котором я упоминал выше, попробуйте сделать

0



#5

Отправлено 19 января 2023 — 07:21

  • Профессионал

Просмотр сообщенияZiringue_Jhonsom (19 января 2023 — 06:58) писал:

Нажмите сюда, чтобы прочитать это сообщение. [

Показать

]

Понимаю, что переводчик, все дела, но мне лично сложно уловить ход мыслей. О каком включении идёт речь не до конца ясно. Да и игнорировать лимит PlayerTextDraw’ов в 256 нативным образом не выйдет, приходится либо действовать как сказал Deimos — динамичным путём, удаляя ненужные текстдравы из памяти игрока или вмешиваться в клиентскую часть для того, чтобы слегка подкорректировать лимиты SAMP’a

0



#6

Отправлено 19 января 2023 — 09:54

  • Evil Scripter

Просмотр сообщенияPerdolinka (19 января 2023 — 06:47) писал:

Добавь ещё может то, что в случае достижения определённого лимита показанных текстдравов(60-100) их загрузка может достигать нескольких секунд.

Не замечал, чтоб количество показанных текстдравов как-то влияло на скорость их загрузки. Максимум — если у клиента компьютер слабый и сами по себе текстдравы нагружают его. Но с самими текстдравами или сервером это никак не связано. Для сервера и клиента любой по счёту текстдрав — это просто несколько пакетов с наборами данных. Так что количество тут особо ни на что не влияет.

Просмотр сообщенияZiringue_Jhonsom (19 января 2023 — 06:58) писал:

Показать скрытое содержание

В этом примере изображения сервер использует то же самое включение, которое я разместил выше, и ему удается сделать 5 круговых индикаторов выполнения, игнорируя ограничение сэмпа в 256, это то, что мне интересно знать, как это сделать, потому что я знаю, что можно игнорировать ограничение textdraw с помощью плагина, о котором я упоминал выше, попробуйте сделать

Судя по тому, что индикатор еды остаётся полным, хотя значение самой еды равно 93 — сами индикаторы являются обычным кругом, который не имеет возможности заполняться так, как хотите сделать вы.
Вы можете найти в интернете разнообразные скрипты, которые позволяют копировать текстдравы с других серверов. Воспользовавшись таким скриптом, вы сможете точно увидеть то, какую структуру имеют эти индикаторы

Просмотр сообщенияZiringue_Jhonsom (19 января 2023 — 06:58) писал:

Показать скрытое содержание
игнорируя ограничение сэмпа в 256

Повторюсь, что эти ограничения никак со стороны сервера обойти не получится. И причина заключается в том, что это ограничения не сервера, а клиента. Так что есть только два пути: либо пытаться уместить все нужные текстдравы в лимиты, либо писать клиентский плагин, увеличивающий нужные лимиты (но чтоб он работал, нужно каким-то образом заставить каждого игрока скачать этот плагин).

Сообщение отредактировал DeimoS: 19 января 2023 — 09:55

0



#7

Отправлено 19 января 2023 — 10:10

  • Профессионал

Просмотр сообщенияDeimoS (19 января 2023 — 09:54) писал:

Нажмите сюда, чтобы прочитать это сообщение. [

Показать

]

Возможно, не последнюю роль, кроме слабого ПК сыграли слабоватая машина и около десяти игроков, у которых было около 40 предметов в инвентаре.

Сообщение отредактировал Perdolinka: 19 января 2023 — 10:14

0



#8

Отправлено 19 января 2023 — 14:17

Можно попробовать использовать обычный ГЛОБАЛЬНЫЙ текст для создания подобного эффекта. Чем больше использовать точек для отрисовки круга, тем чётче будет круг, но я не думаю, что это обязательно в SAMP.

Изображение
Можно сделать так, что если 100 точек — это 100%, то при изменение оставлять столько отображаемых точек, сколько необходимо каждому игроку.

Приведу небольшой пример, без точных рассчётов

#define MAX_POINTS 100 // указываем сколько всего точек на круг

new Text:pointsTD[MAX_POINT]; // создаём под каждую точку место, если у тебя несколько индикаторов (кругов), то делаешь размерность pointsTD[num][MAX_POINT]

public OnGameModeInit()
{
    for(new point; point < MAX_POINTS; point++) // создаём точки для индикатора
    {
        Text:pointsTD[point] = TextDrawCreate(x, y, ".");

        TextDrawFont(pointsTD[point], 1);
        TextDrawLetterSize(pointsTD[point], size_x, size_y);
    }

    return 1;
}

Что касается создания, можно проставить координаты для каждой точки в ручную, сохранив их при этом в каком-то массиве, а можно придумать формулу, по которой координаты x и y будут зависеть от переменной «point». Размер точки тоже нужно подбирать, чтобы он подходил под твой индикатор (круг) в целом.

Теперь, когда ты проводишь проверку состояния игрока, то делаешь подобное:

new playerEat[MAX_PLAYERS]; // для примера будет целочисленное число, можно использовать Float, но нужно будет округлять его

stock SetPlayerEat(playerid, eat) // для примера, чтобы вызвать само изменение состояния питания игрока
{
    playerEat[playerid] = eat;

    return UpdateDisplayPlayerEat(playerid); // теперь вызываем функцию для обновления индикатора
}

UpdateDisplayPlayerEat(playerid)
{
    for(new point; point < MAX_POINTS; point++)
    {
        if(point <= playerEat[playerid]) // пока point меньше или равно playerEat - мы показываем pointsTD[point], если playerEat меньше point - мы скрываем pointsTD[point]
        {
            TextDrawShowForPlayer(playerid, pointsTD[point]);
        }
        else
        {
            TextDrawHideForPlayer(playerid, pointsTD[point]);
        }
    }

    return 1;
}


Изображение

Если на твой один индикатор будет уходить около 50 точек, хватит почти на 40 индикаторов :biggrin:

Сообщение отредактировал M I S T E V: 19 января 2023 — 15:39

2



#9

Отправлено 19 января 2023 — 15:34

  • Профессионал

Просмотр сообщенияM I S T E V (19 января 2023 — 14:17) писал:

Нажмите сюда, чтобы прочитать это сообщение. [

Показать

]

Только цикл тогда уж стоило бы стартовать с единицы что ли, чтобы не было 101 итерации вместо ста

1



#10

Отправлено 19 января 2023 — 22:01

  • Прохожий

Просмотр сообщенияM I S T E V (19 января 2023 — 14:17) писал:

Нажмите сюда, чтобы прочитать это сообщение. [

Показать

]

Изображение

Мне удалось сделать то, что я хотел большое спасибо за объяснения, вы все лучшие

1


1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей

Понравилась статья? Поделить с друзьями:
  • Как найти кости динозавров в red dead
  • Как найти музыку друга вконтакте
  • Как правильно составить исковое заявление при разделе имущества
  • Как в вайм ворлд найти друга
  • Как найти смайлики вконтакте