Может если я выскажу задумку, будет легче выбрать вариант попроще:
По умолчанию всё центрируется. В предположении ширина текста величины должна сохраняться хоть при 3-значном, 2-значном или даже 1-значном. Но при этом, к примеру, в числе 080 красная цифра должна заменяться на тот самый "пустой" спрайт.
a) Если делать центрирование по правому краю, то "пустые" спрайты можно сделать отдельным слоем и уже значение накладывать вторым
b) Если через MakeFONT назначить "пустой" спрайт каким-нибудь символом, можно просто выполнить проверку разрядности числа и прибавлять необходимое кол-во пустых спрайтов. Этот вариант я пробывал, пока безсупешно.
Погоди.. Тебе просто нужно было вывести текст с выравниванием по правому краю? Тогда надо было сразу использовать PutTextR вместо HUD_DrawText. Я же сказал посмотреть, как выводятся ники игроков в мультиплеере.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Тебе просто нужно было вывести текст с выравниванием по правому краю?
Из-за дизайна с этими "пустыми" спрайтами, да.
Quote (SLAwww)
Тогда надо было сразу использовать PutTextR
И тут же у меня возникли проблемы с размерами/позиционированием. Я ещё пытался разбить число на три цифры и выводить каждое в отдельной иконке, но это пригодится в полномаштабном редактировании HUD'а. Кажись придется использовать идею Алексея - инициализировать модель в HUD
Потому что ты его неправильно использовал. Зачем-то вставил вызов PutTextR аргументом в HUD_DrawText.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Короче смотри/слушай/читай, допустим, я хочу сделать максимальное число HP игрока, не точным значением, а сделать переменную, и хочу чтобы я смог изменять её в игре через новую энтию, т.е через другую энтию, я хочу изменять максимальное кол-во здоровье игрока, как мне это сделать?
МегаМозг, насколько помню, там есть внеклассовые функции GetMaxHealth и GetTopHealth, тебе надо заменить их вызовы на обращения к переменным (создать переменные m_fMaxHealth и m_fTopHealth), затем обращаться к ним у объекта игрока, допустим, ((CPlayer*)GetPlayerEntity(0))->m_fMaxHealth=150.0f;. Serious_Master, нужно много кодить. =Р
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Я пробовал пробовал, но не смог получить нужного эффекта. Вопрос. Как рандомизировать характеры у гнаров. Мой код.
Code
Main(EVoid) { if (m_EecChar==EYC_SOLDIER) { m_EecChar=EYC_SOLDIER; }
if (m_EecChar==EYC_XXX) { autowait(0.1f); switch (IRnd()%20) { case 0: m_EecChar=EYC_SOLDIER; break; case 1: m_EecChar=EYC_SERGEANT; break; case 2: m_EecChar=EYC_Z2; break; case 3: m_EecChar=EYC_Z3; break; …………………………. case 20: m_EecChar=EYC_Z20; break; } } switch (m_EecChar) { case SOLDIER тут идут характеристики врага
Сообщение отредактировалCAHEK - Понедельник, 10.09.2012, 12:31
Всё очень серьёзно. P.S. Не пишите мне на Email, пишите в Л.С.
if (m_EecChar==EYC_SOLDIER) { m_EecChar=EYC_SOLDIER; }
Это зачем? Убери. Во-вторых, autowait(0.1f); должен стоять перед if(m_EecChar==EYC_XXX). А ещё раньше должно стоять присвоение врагу модели и текстуры. Если у него в редакторе не будет модели и текстуры, он будет каждый раз вылетать, поэтому назначь любую, а уже после начала игрового времени модель, текстура и другие параметры будут меняться. В-третьих, последним будет не case 20:, а case 19:, и после него ещё default: (можно вместо 19-го). Во втором свитче убедись, что не забыл ни одного ключевого слова break.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Для чего именно нужно создавать эффект поднятия клавиши?
Просто поменять значение ctl_-переменной можно через _pShell->Execute.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Так для чего создавать такой эффект? Если нужно остановить игрока, останавливай его непосредственно, а не через имитацию поднятия клавиши.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Проблема в том, что залипать могут все клавиши, а не только кнопки управления. Т.е. по-настоящему я клавишу не держу, но она для компьютера она в зажатом состоянии. Просто сообщения о поднятии клавиши отправляются не SeriousSam.exe, а другому приложению, а когда Сэм вновь стает активной задачей, клавиши залипают. Приходится их зажать и отпустить, что бы послать сообщение о поднятии кнопки. Так что останавливать игрока насильно с помощью SetDesiredTranslation/Rotation бесполезно. Вот я и пытаюсь найти способ полегче, что бы послать всем клавишам KEYEVENTF_KEYUP
Добавлено (18.09.2012, 09:11) --------------------------------------------- мм... Надо попробовать сделать цикл где числа от 1 до 254 переводятся в НЕХ и послать им KEYEVENTF_KEYUP...
Как сделать, чтобы если выполняется первая функция и в момент ее выполнения вызывается вторая функция, то первая функция прекращала работать, а сразу же начала работать вторая функция.
Всё очень серьёзно. P.S. Не пишите мне на Email, пишите в Л.С.
SeriousAlexej, такое не должно происходить. Даже если другое приложение повесило клавиатурный крюк, оно будет передавать сигналы нажатия клавиш остальным приложениям, если специально не сделать обратное. Проверь свою систему на вирусы. Что касается Сэма - можешь изменить метод ApplyAction у CPlayer, он в качестве аргумента принимает ссылку на объект класса CPlayerAction, ты можешь просто изменять содержимое этого объекта до того, как он будет интерпретирован и преобразован в действие игрока.
МегаМозг, _pShell->GetINDEX(m_strParam) вернёт 1, если, допустим, m_strParam - это "ctl_bMoveForward", и зажата кнопка движения вперёд (если не зажата - вернёт 0). Просто совершай эту проверку в цикле. Это самый лёгкий способ, без возни с классом игрока.
CAHEK, ты это серьёзно? -_- Может, у тебя две разных сущности, а не просто две функции?
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Нет, нужно создать энтити, которая будет в цикле проверять _pShell->GetINDEX(m_strParam).
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
В строке кода когда в котором добавляешь детализированную текстуру есть еще два нуля. Как я понял это тоже какие-то текстуры. Вопрос: Какой ноль какую текстуру дает.
Всё очень серьёзно. P.S. Не пишите мне на Email, пишите в Л.С.
Посмотри на названия аргументов в прототипе функции, которую вызываешь.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Ищи исходник Particles.cpp в папке Entities\Common.
До сих пор в топе загрузок и просмотров... Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет... Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.
Понял. Я сделал с нуля новые патроны для песта (чтобы они кончались) все хорошо, но невидно количество оставшихся патронов, несмотря на то, что когда они кончаются оружие меняется.
Как зовут систему частиц крови.
Ну и еще. Я сделал ствол с нуля но при этом столкнулся с ограничением количества видов оружия. Как его убрать.
Сообщение отредактировалCAHEK - Понедельник, 01.10.2012, 19:07
Всё очень серьёзно. P.S. Не пишите мне на Email, пишите в Л.С.