HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Вопрос по картинкам во VGUI
Каждой карте - своя картинка в мэпбрифинге
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Shadow762
быдлокодер

Дата регистрации: Jul 2015
Проживает: Гиде-то
Сообщений: 71
Возраст: 26

Рейтинг



Вопрос по картинкам во VGUI

Собственно, хотел в свой мод добавить такую штуку: В мэпбрифинге рядом с описанием карты чтобы был скриншотик. Написал такой вот код:

C++ Source Code:
1
if (gEngfuncs.pfnGetLevelName() == "map1")
2
  plab->setImage(vgui_LoadTGA("maps/map1.tga"));
3
else if (gEngfuncs.pfnGetLevelName() == "map2")
4
  plab->setImage(vgui_LoadTGA("maps/map2.tga"));
5
else if (gEngfuncs.pfnGetLevelName() == "map3")
6
  plab->setImage(vgui_LoadTGA("maps/map3.tga"));
7
else
8
  plab->setImage(vgui_LoadTGA("maps/zero.tga"));

Далее само собой разумеется разметка типа размера и расположения но это не важно. В общем, проблема в том что всегда высвечивается картинка из условия else. Почему так - не могу понять.

__________________
я Z

Сообщить модератору | | IP: Записан
Сообщение: 156686

Старое сообщение 16-07-2016 10:47
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Shadow762 кто тебя так учил строки в си сравнивать?

__________________

Сообщить модератору | | IP: Записан
Сообщение: 156688

Старое сообщение 16-07-2016 11:06
-
Shadow762
быдлокодер

Дата регистрации: Jul 2015
Проживает: Гиде-то
Сообщений: 71
Возраст: 26

Рейтинг



XaeroX, Никто, я с ними не умею работать) Будь добр, покажи как в конкретном случае правильно сделать

__________________
я Z

Сообщить модератору | | IP: Записан
Сообщение: 156689

Старое сообщение 16-07-2016 11:10
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Shadow762
Ну в самом SDK мало примеров, что ли?
Смотри функции strcmp/_stricmp.
Твой код сравнивает не строки, а адреса, которые, разумеется, разные.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 156690

Старое сообщение 16-07-2016 11:34
-
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


Кстати, никто не запилил ещё загрузку BMP-файлов в VGUI?
Я начал писать стаб, но это велосипедное чувство меня задавило....

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]

Сообщить модератору | | IP: Записан
Сообщение: 156691

Старое сообщение 16-07-2016 11:54
- За что?
Shadow762
быдлокодер

Дата регистрации: Jul 2015
Проживает: Гиде-то
Сообщений: 71
Возраст: 26

Рейтинг



В общем сделал с strcmp, убрал else ради эксперимента, теперь грузится на всех картах картинка третей. когда третью карту переименовал, не грузится никакая картинка. Я по-прежнему не знаю как довести до ума это(

Добавлено 16-07-2016 в 17:03:

вот код:

C++ Source Code:
1
if (!strcmp (gEngfuncs.pfnGetLevelName(), "map1")==0)
2
  plab->setImage(vgui_LoadTGA("maps/map1.tga"));
3
if (strcmp (gEngfuncs.pfnGetLevelName(), "map2")==0)
4
  plab->setImage(vgui_LoadTGA("maps/map2.tga"));
5
if (!strcmp (gEngfuncs.pfnGetLevelName(), "map3")==0)
6
  plab->setImage(vgui_LoadTGA("maps/map3.tga"));

__________________
я Z

Сообщить модератору | | IP: Записан
Сообщение: 156703

Старое сообщение 16-07-2016 14:03
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Shadow762
Копай в сторону функции strcmp. А именно, как правильно её использовать. Примеров вагон, в том числе в SDK.
Хотя я бы рекомендовал использовать _stricmp, т.к. емнип, в халфе имена карт не чувствительны к регистру.

Добавлено 16-07-2016 в 20:40:

Цитата:
Shadow762 писал:
if (!strcmp (gEngfuncs.pfnGetLevelName(), "map1")==0)

Зачем тут восклицательный знак?

__________________

Сообщить модератору | | IP: Записан
Сообщение: 156706

Старое сообщение 16-07-2016 14:40
-
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


Цитата:
XaeroX писал:
Хотя я бы рекомендовал использовать _stricmp

не учи человека плохим вещам! А то потом будешь радоваться высерами типа "dM_aRKANOs.tXT" в архивах с крутыми картами.

Shadow762 зачем проверять имя карты на "map2", если уже известно, что оно "map1"?

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]

Сообщить модератору | | IP: Записан
Сообщение: 156710

Старое сообщение 16-07-2016 15:33
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
~ X ~ писал:
не учи человека плохим вещам!

Я учу людей только тому, что делаю сам.
Case sensitivity в игровых движках - зло.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 156714

Старое сообщение 16-07-2016 15:50
-
Shadow762
быдлокодер

Дата регистрации: Jul 2015
Проживает: Гиде-то
Сообщений: 71
Возраст: 26

Рейтинг



Цитата:
~ X ~ писал:
Shadow762 зачем проверять имя карты на "map2", если уже известно, что оно "map1"? [/B]
так надо. Во вгуе каждой карте свой скриншотик. Если бы хотел всем один и тот же влепить, я бы сюда не обращался.

Добавлено 16-07-2016 в 19:06:

XaeroX
Цитата:

Зачем тут восклицательный знак?
без него пустое место) картинка не выводится. Я просто экспериментировал.

__________________
я Z

Отредактировано Shadow762 16-07-2016 в 16:12

Сообщить модератору | | IP: Записан
Сообщение: 156716

Старое сообщение 16-07-2016 16:06
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
Shadow762 писал:
Я просто экспериментировал.

Ну так экспериментируй дальше, чего ты так быстро сдаёшься.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 156719

Старое сообщение 16-07-2016 17:01
-
Shadow762
быдлокодер

Дата регистрации: Jul 2015
Проживает: Гиде-то
Сообщений: 71
Возраст: 26

Рейтинг



Цитата:
XaeroX писал:
Ну так экспериментируй дальше, чего ты так быстро сдаёшься.
ценю твое чувство юмора, но проблему это не решает. Лучше скажи как эту фишку правильно реализовать)

__________________
я Z

Сообщить модератору | | IP: Записан
Сообщение: 156721

Старое сообщение 16-07-2016 17:14
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
Shadow762 писал:
ценю твое чувство юмора

Я не шучу. Если ты ленишься почитать учебник по Си, или хотя бы тупо загуглить, и предпочитаешь экспериментировать - экспериментируй! Я могу дать тебе рабочий код, но какой в этом смысл, если ты не желаешь учиться. Таким образом, время будет потрачено зря.
Ты можешь возразить - но ведь на написание всех этих постов времени ушло в разы больше? Верно. Но я пишу их один раз, а отвечать на вопросы не желающего учиться человека потом придётся постоянно. Теперь же ты, возможно, задумаешься и таки откроешь учебник. Или - как вариант - обругаешь меня про себя плохими словами и пойдёшь спрашивать на другой ресурс. Оба варианта ок.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 156722

Старое сообщение 16-07-2016 17:15
-
Shadow762
быдлокодер

Дата регистрации: Jul 2015
Проживает: Гиде-то
Сообщений: 71
Возраст: 26

Рейтинг



Цитата:
XaeroX писал:
обругаешь меня про себя плохими словами и пойдёшь спрашивать на другой ресурс

Не вижу в этом никакого смысла. За рабочий код буду благодарен. А на счет новичка, который будет иждивенчески требовать код от опытных, я не из таких. На форум я иду когда уже не вижу никаких вариантов решения проблемы. До этого запилил массу фишек, быть может не совсем оригинальных, но тем не менее не копипастой. Врать не стану, частенько ссылался на здешние туторы.

Вернусь к теме.
C++ Source Code:
if (!strcmp (gEngfuncs.pfnGetLevelName(), "map1")==0)
  plab->setImage(vgui_LoadTGA("maps/map1.tga"));
. Вначале я сделал ровно так как ты сказал - с функцией strcmp: прочитал про функцию, применил ее как следует. В итоге на месте картинки я получил пустоту. Подумал, ну может что сотворил там не так, продолжил гуглить, на каком-то сайте нашел вариант с отрицанием ("!"), подставил, появилась ТГАшка, та что после первого условия, то есть которая для первой карты. _stricmp тоже не дает результатов.

Добавлено 16-07-2016 в 20:58:

Насколько я понимаю, gEngfuncs.pfnGetLevelName возвращает название уровня не в том виде.
C++ Source Code:
f (strcmp (gEngfuncs.pfnGetLevelName(), "map1")==0)
plab->setImage(vgui_LoadTGA("maps/map1.tga"));
Иначе бы работало.

__________________
я Z

Отредактировано Shadow762 16-07-2016 в 17:35

Сообщить модератору | | IP: Записан
Сообщение: 156724

Старое сообщение 16-07-2016 17:58
- За что?
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


Цитата:
XaeroX писал:
Case sensitivity

Добро везде и всегда.

Shadow762 ф-я возвращает то ли число разных знаков, то ли позицию, вощем, если это 0, то строки одинаковые. Конструкция if (strcmp(szString, "WTF") == 0) {} как раз это проверяет и код в фиг. скобках выполнится, когда таки строки совпадут. Конструкция if (!strcmp(szString, "WTF")) {} менее очевидная/грамотная, но, по сути, делает то же самое поскольку "!" - логический оператор "не" (т.е. инвертирует 0 в 1 и обратно). Когда ты пишешь всё вкучу, "не" нейтрализует твоё условие.

Вообще, не скрою, я сам учил Си по халве. Но ЭТО... можно просечь своей головой даже без учебников...

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]

Сообщить модератору | | IP: Записан
Сообщение: 156726

Старое сообщение 16-07-2016 18:45
- За что?
Тема: (Опционально)
Ваш ответ:



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


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 05:21. Новая тема    Ответить
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Вопрос по картинкам во VGUI
Каждой карте - своя картинка в мэпбрифинге
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024