Перейти к содержимому


Фотография

Панели


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 8rutu5

8rutu5

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

  • Пользователь
  • PipPipPip
  • 397 сообщений

Отправлено 10 Октябрь 2018 - 20:02

Наверно уже подзадолбал, НО, решил написать статус-панельку. Простую, где отображается список игроков, их здоровье и пинг.

Казалось бы, ничего сложного, но прикол в том, что когда в панель пытаешься вывести элемент с вычислениями, то есть когда в тексте содержатся вещи типа %i, %N и т.д. то данная строка в панели просто не появляется. Самое интересное, что пересмотрел множество других плагинов и даже копировал куски кода с телом панели и просто ставил свой текст с вычислениями и все. Тут же перестают отображаться строки и сама панель. При этом в консоли никаких коллстеков нет.

К примеру 

Format(text, sizeof(text), "Test String");
DrawPanelText(menu, text);

 

Отображает панель и данную строку в ней.

А вот:

FormatEx(text, sizeof(text), "%N", i);
DrawPanelText(menu, text);

 

Нет!

Отсюда вопрос, что это за магия такая? У других, все в точности то же самое.

На такие вопросы как:

"Ты делал CreatePanel() ?" Сразу отвечаю - Да! Панель работает с обычной строкой, а вот с вычисляемой нет.


Сообщение отредактировал 8rutu5: 10 Октябрь 2018 - 20:03


#2 Ren89

Ren89

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

  • Пользователь
  • PipPipPip
  • 291 сообщений

Отправлено 10 Октябрь 2018 - 21:49

Разобрался?

Не пойму твоей логики, как ты определяешь где использовать Format а где FormatEx

Format нужен чтобы перевести переменные в текст и потом использовать текст в DrawPanelText или DrawPanelItem
А в твоем примере можно было сразу DrawPanelText(menu, "Test String");

Сообщение отредактировал Ren89: 10 Октябрь 2018 - 21:49


#3 8rutu5

8rutu5

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

  • Пользователь
  • PipPipPip
  • 397 сообщений

Отправлено 10 Октябрь 2018 - 23:01

На FormatEx не обращай внимание. Это просто проба была со старого кода. Я вернул все в формат. Насчет того, что текст можно сразу в DrawPanelText я тоже знаю. Я работал с плагинами с панелями много раз. Я уже знаю принцип, это просто все были пробы в моем плагине, который я писал с 0 с упором на то, как реализовали другие. Проблема остается та же. Что в других плагинах такое, к примеру, работает. 

Format(text, sizeof(text), "%N", i);
DrawPanelText(menu, text);

А у меня в моем плагине не работает.

При том, что если сделать:

Format(text, sizeof(text), "Test String");
DrawPanelText(menu, text);

Или:

DrawPanelText(menu, "Test String");

Тогда работает.

Еще раз повторю - суть проблемы в том, что в панели не выводятся строки, которые содержат %i, %N, %f и т.д.


 

Разобрался?

Не пойму твоей логики, как ты определяешь где использовать Format а где FormatEx

Format нужен чтобы перевести переменные в текст и потом использовать текст в DrawPanelText или DrawPanelItem
А в твоем примере можно было сразу DrawPanelText(menu, "Test String");

 


Сообщение отредактировал 8rutu5: 10 Октябрь 2018 - 22:49


#4 Ren89

Ren89

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

  • Пользователь
  • PipPipPip
  • 291 сообщений

Отправлено 11 Октябрь 2018 - 16:22

убедись что размера text хватает чтобы вместить что нужно, 64-128 должно хватить

также DrawPanelText и DrawPanelItem плохо относятся к некоторым символам, и из за этого весь дальнейший блок ломается

добавь пробел в начало text: Format(text, sizeof(text), " %N", client);

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


Сообщение отредактировал Ren89: 11 Октябрь 2018 - 16:24


#5 8rutu5

8rutu5

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

  • Пользователь
  • PipPipPip
  • 397 сообщений

Отправлено 11 Октябрь 2018 - 16:55

убедись что размера text хватает чтобы вместить что нужно, 64-128 должно хватить

также DrawPanelText и DrawPanelItem плохо относятся к некоторым символам, и из за этого весь дальнейший блок ломается

добавь пробел в начало text: Format(text, sizeof(text), " %N", client);

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

В общем, кажется, я разобрался. Пока все идет к тому, что проблема была в первом символе "[" в строке. Убрав его все работает. Магия... Такую ошибку искать все-равно, что иголку в стоге сена... Если ты был тоже не в курсе этого, то имей ввиду.



#6 MixJay

MixJay

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

  • Пользователь
  • PipPipPip
  • 222 сообщений

Отправлено 11 Октябрь 2018 - 17:58

В общем, кажется, я разобрался. Пока все идет к тому, что проблема была в первом символе "[" в строке. Убрав его все работает. Магия... Такую ошибку искать все-равно, что иголку в стоге сена... Если ты был тоже не в курсе этого, то имей ввиду.

Кстати, да, есть такая тема. В свой время заменял символы "[" и "]" в строках для панели


  • 8rutu5 это нравится

#7 Ren89

Ren89

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

  • Пользователь
  • PipPipPip
  • 291 сообщений

Отправлено 11 Октябрь 2018 - 19:41

не обязательно убирать "[", можно пробел перед ним поставить и будет работать

т.е. нужно чтобы текст в DrawPanelText или DrawPanelItemначинался с 1 пробела



#8 8rutu5

8rutu5

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

  • Пользователь
  • PipPipPip
  • 397 сообщений

Отправлено 11 Октябрь 2018 - 21:48

не обязательно убирать "[", можно пробел перед ним поставить и будет работать

т.е. нужно чтобы текст в DrawPanelText или DrawPanelItemначинался с 1 пробела

Хорошо, спасибо




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных