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.
SLAwww, SeriousAlexej, спасибо за помощь, всё заработало.
Я пошёл немного другим путём:
1. Забил функцию телепортирования в начале файла:
Code
// выпадание вещей void TeleportEntity() { // если энтития не указана или её не существует if (m_penHeadmanTarget==NULL || (m_penHeadmanTarget->GetFlags()&ENF_DELETED)) { // ничего не делаем return; } // if (NULL)
Добавлено (03.11.2011, 18:40) --------------------------------------------- Как при гибели игрока запретить загрузку левой кнопкои мыши на некоторое время
Всё очень серьёзно. 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.
Всем привет. У меня появилась необычная проблема, не связанная с Сэмовским СДК.
Я нашел код проигрывателя avi и немного переделал его под себя (он всегда в фул скрине и выключается после просмотра или от нажатия клавиши Esc).
Проблема состоит в том, что когда я его запускаю из другой программы (линк на проигрыватель лежит в дллке другой программы и выглядит так:
Code
system("start player.exe /silent");
), то виндоус переключается на эту задачу и снизу вылазит панелька задач. После проигрывания, появляется десктоп, а мне надо, что бы автоматически выбиралась та программа, которая запустила плеер. Еще хотелось бы убрать панельку задач из видео по возможности... Надеюсь на вашу помощь.
Хы, ну кто же так делает? ) Передай в свой проигрыватель HWND активного окна, вытащи из него Device context и отрисовывай туда всё, что тебе нужно.
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.
SLAwww, спасибо, что ответил. Я, по правде говоря, только сейчас узнал об HWND. Как я понял, активировать/деактивировать можно только активное окно. Можно ли при инициализации плеера деактивировать его, получить id окна программы, которая запустила его, развернуть плеер обратно и потом уже переключиться на окно программы с помощью найденного id? Или же можно как-то послать евент exe файлу самого плеера?
На счет Device context. Об этом я тоже услышал впервые, но, как я понял, оно используется для прорисовки чего-то на экране. Оно и правда тут необходимо, или же можно обойтись активацией/деактивацией окон? П.С.: прости, что так много вопросов сразу, я только начинаю изучать ЯПы.
Немного не понял, чего ты хочешь добиться. Убрать панель задач во время воспроизведения видео и вернуться в предыдущее окно после окончания видео? Используй CreateProcess вместо еретического чугунно-деревянного system(). Если не поможет, тогда уже надо либо посылать процессу проигрывателя сообщение для перехода в полноэкранный режим, либо возиться с контекстом устройства. То, что воспроизводится в полноэкранном режиме, по идее должно захватывать HWND рабочего стола и/или отрисовываться в эксклюзивном режиме (если юзается Direct3D или OpenGL). Но в большинстве случаев, CreateProcess с правильно выбранными аргументами должен помочь.
Сообщение отредактировалSLAwww - Вторник, 08.11.2011, 00:16
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.
Если честно, меняя параметры в SEColors.h хорошего не жди. Как я помню, там идет имя переменной (допустим GreenMP) и присваиваемое ей значение 0x00ff0000, а значит меняя только присваиваемое значение, смещается только цветовая гамма. Например - Под желтым цветом можно получить Бирюзовый.
Сам файл Нетриксы бы найти и там отредактировать
Сообщение отредактировалart-serious - Пятница, 11.11.2011, 17:01
Переменные, значения которых здесь задаются, определены внутри Computer.cpp, и отвечают за цвет элементов Инертана.
Сообщение отредактировалSLAwww - Пятница, 11.11.2011, 21:34
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.
SLAwww, спасибо, все заработало, как надо. У меня еще остался 1 вопрос. Я решил научить прогу воспроизводить bik видео, но по этому примеру тут инициализируется новое окно.
Можно ли это новое окно заменить на то, которое уже открыто в моей программе вот так:
В твоём примере достаточно в функцию Init3D передавать HWND окна, в котором хочешь отрисовывать видео. И лучше бы тебе передавать HWND непосредственно в своё приложение каким-нибудь образом (например, через совместно используемую ДЛЛку с HWND в сегменте .SHARDAT), чем искать его через FindWindow, хотя, это тоже должно сработать. Но не на всех системах.
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.
Я тут начал кодить класс врага, аля NPC Dr.zlo, используется моделька стандартного сэма, но проблемко, вот в этой части я не могу сделать так, чтобы все аттачменты было видно:
// set your appearance SetModel(MODEL_PLAYER); SetModelMainTexture(m_fnmPlayerTex); AddAttachment(PLAYER_ATTACHMENT_TORSO, MODEL_BODY, TEXTURE_BODY); SetModelMainTexture(m_fnmBodyTex); AddAttachment(BODY_ATTACHMENT_HEAD, MODEL_HEAD, TEXTURE_HEAD); SetModelMainTexture(m_fnmHeadTex); AddAttachment(HEAD_ATTACHMENT_GLASSES, MODEL_GLASSES, TEXTURE_GLASSES);
Пробовал разными способами, но либо видна одна голова, либо торс с головой и очками парентится совсем не туда, куда нужно.
Так же почему то вылетает при функции атаки ( одной из нескольких):
Fire(EVoid) : CEnemyBase::Fire { // hit if (en_BotWeaponType=WT_ROCKETLAUNCHER) {
Гы, так ты же пытаешься прикрепить аттачмент головы к самой модели Player.mdl, а его надо цеплять к аттачменту торса. ) Не странно, что получается голова с ножками. Смотри сюда:
Идея понятна? А функция огня вылетает по той же причине - пытаешься прикрепить аттачмент к несуществующей позиции и/или удаляешь предыдущий аттачмент путём установки на его место нового. Аттачмент нельзя удалять, его можно в крайнем случае деактивировать, иначе фейл.
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.
Heming_Hitrowski, ты добавляешь атачменты к одной и той же модельке - к Player.mdl Тебе надо сперва добавить Боди, а потом уже к нему голову, а к ней очки. Вот пример (на практике не применял, но должен помочь в теории):
SetModel(MODEL_PLAYER); SetModelMainTexture(m_fnmPlayerTex); CModelObject moPlayer = GetModelObject(); //ссылка к Плееру AddAttachmentToModel(this, moPlayer, PLAYER_ATTACHMENT_TORSO, MODEL_BODY, TEXTURE_BODY, 0, 0, 0); //добавили Боди CModelObject &mo = moPlayer.GetAttachmentModel(PLAYER_ATTACHMENT_TORSO)->amo_moModelObject; //теперь у нас есть ссылка к Боди AddAttachmentToModel(this, mo, BODY_ATTACHMENT_HEAD, MODEL_HEAD, TEXTURE_HEAD, 0, 0, 0); //добавили голову CModelObject &mog = mo.GetAttachmentModel(HEAD_ATTACHMENT_GLASSES)->amo_moModelObject; //получили ссылку к голове =) AddAttachmentToModel(this, mog, HEAD_ATTACHMENT_GLASSES, MODEL_GLASSES, TEXTURE_GLASSES, 0, 0, 0); //ну и добавили очки =)
SeriousAlexej, E:/Program Files/MyMod/Sources/EntitiesMP/Bot.es(294) : error C2440: 'initializing' : cannot convert from 'class CModelObject *' to 'class CModelObject' No constructor could take the source type, or constructor overload resolution was ambiguous