Новые сообщения Участники Правила Поиск
Модератор форума: freeknik, SLAwww, thecre, RealCrazyMan  
Помощь по SDK для Serious Sam 1.05/1.07
ST27 Воскресенье, 15.03.2015, 17:34 | Сообщение # 2281


Сообщений: 457
Награды: 7
Замечания: 0%
 
Спасибо, попробую

Добавлено (15.03.2015, 17:00)
---------------------------------------------
Добавил в конце plPos = plFiringPos и всё сработало, спасибо.

Добавлено (15.03.2015, 17:34)
---------------------------------------------
Кстати, ещё, перед plPos = plFiringPos как сделать проверку, какая дистанция от прицела до m_penTarget, например, если fDistance < 16 (пикселей, наверно) { plPos = plFiringPos; }

- My Personal Site -
SLAwww Воскресенье, 15.03.2015, 18:21 | Сообщение # 2282


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Тебе нужно измерять не пиксели, а угол отклонения. Получи нормированный вектор от viewpoint'a к прицелу, и ещё один от viewpoint'a к цели, выполни скалярное умножение и получишь угол между ними. Если угол достаточно маленький, включай autoaim.

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.

and so ended our search.
ST27 Воскресенье, 15.03.2015, 19:05 | Сообщение # 2283


Сообщений: 457
Награды: 7
Замечания: 0%
 
Что такое скалярное умножение? Х_Х

- My Personal Site -
thecre Воскресенье, 15.03.2015, 19:35 | Сообщение # 2284


Сообщений: 3449
Награды: 28
Замечания: 0%
 
https://ru.wikipedia.org/wiki....8%D0%B5

ST27 Воскресенье, 15.03.2015, 20:08 | Сообщение # 2285


Сообщений: 457
Награды: 7
Замечания: 0%
 
Что-то я сделал не так, да?
Код
FLOAT3D vToEnemy, vToCenter;
    vToEnemy = NearestEnemy()->GetPlacement().pl_PositionVector+FLOAT3D(0,0.75f,0) - plPos.pl_PositionVector;
    vToEnemy.Normalize();
    vToCenter = m_vRayHit - plPos.pl_PositionVector;
    FLOAT3D vAngle = vToCenter(1)*vToEnemy(1)+vToCenter(2)*vToEnemy(2)+vToCenter(3)*vToEnemy(3);
    if (vAngle(1) < 30 && vAngle(2) < 30 && vAngle(3) < 30) {
   plPos = plFiringPos;
    }


- My Personal Site -
SLAwww Воскресенье, 15.03.2015, 20:19 | Сообщение # 2286


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Скалярное произведение - это число, а не вектор. У него тип FLOAT, а не FLOAT3D. И ещё, ты забыл нормализовать vToCenter. И ещё, от скалярного произведения надо взять арккосинус, это и будет угол в радианах. А этот угол нужно ограничить, чтобы не получались отрицательные значения (если меньше 0, то прибавить 2*PI).

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.

and so ended our search.
ST27 Воскресенье, 15.03.2015, 20:33 | Сообщение # 2287


Сообщений: 457
Награды: 7
Замечания: 0%
 
Вау

Добавлено (15.03.2015, 20:33)
---------------------------------------------
И я опять тупить начинаю, потому, что википедия не помогает

Код
FLOAT3D vToEnemy, vToCenter;
    vToEnemy = NearestEnemy()->GetPlacement().pl_PositionVector+FLOAT3D(0,0.75f,0) - plPos.pl_PositionVector;
    vToEnemy.Normalize();
    vToCenter = m_vRayHit - plPos.pl_PositionVector;
    vToCenter.Normalize();
    FLOAT fAngle = vToCenter(1)*vToEnemy(1)+vToCenter(2)*vToEnemy(2)+vToCenter(3)*vToEnemy(3);
    FLOAT fNormAngle = ACos(fAngle);
    if (fNormAngle < 0) { fNormAngle += 2*PI; }
    if (fNormAngle < 30) {
   plPos = plFiringPos;
   hud_fCrosshairScale = 5.0f;
    }


- My Personal Site -
SLAwww Воскресенье, 15.03.2015, 20:53 | Сообщение # 2288


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
А в чём проблема?

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.

and so ended our search.
ST27 Воскресенье, 15.03.2015, 20:55 | Сообщение # 2289


Сообщений: 457
Награды: 7
Замечания: 0%
 
А оно работает либо через раз, либо он целится не зависимо от угла на 360 градусов

- My Personal Site -
SLAwww Понедельник, 16.03.2015, 01:29 | Сообщение # 2290


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Выведи fNormAngle на экран с помощью CPrintF и посмотри, какие там числа проскакивают перед проверкой на отрицательность:
CPrintF("Norm Angle: %f\n", fNormAngle);


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.

and so ended our search.
CAHEK Вторник, 07.04.2015, 06:12 | Сообщение # 2291


Сообщений: 794
Награды: 16
Замечания: 0%
 
Ситуация.
Хочу сделать в тригере несколько граф "Message", что бы они показывались одновременно в несколько строчек. Полазив в коде я вышел на ссылку функцию "PrintCentrMessage" с помощью которой появляется сообщение(написал коряво т.к. исходников под рукой нет). А саму функцию так и не нашел.
1. Где она ?
2. Как находить функции (что бы каждый раз не спрашивать на форуме) ?
3. Может есть способ проще ?


Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
ST27 Вторник, 07.04.2015, 16:52 | Сообщение # 2292


Сообщений: 457
Награды: 7
Замечания: 0%
 
В прикреплении скрин, как искать. Если функции не нашёл или где-то она просто написана как "sth Function(arguments)...", значит она в самом движке.
Прикрепления: 5699482.jpg (86.0 Kb)


- My Personal Site -
rtemiy Воскресенье, 12.04.2015, 00:42 | Сообщение # 2293


Сообщений: 30
Награды: 5
Замечания: 0%
 
А как добавить новую поверхность? (Имеется ввиду типа Standart или Sand)

http://vk.com/rtemiy
vanya109 Воскресенье, 12.04.2015, 11:10 | Сообщение # 2294


Сообщений: 274
Награды: 13
Замечания: 0%
 
Здравствуйте!
1. Скажите как увеличить мясо (например убил гнаара бензопилой, мясо больше стало)?
2. Как добавить звуки металла когда хожу и когда стреляешь на пол - звук, (я добавил новый тип - "metal")


hripyshanya Воскресенье, 12.04.2015, 11:16 | Сообщение # 2295


Сообщений: 32
Награды: 0
Замечания: 0%
 
Цитата vanya109 ()
2. Как добавить звуки металла когда хожу и когда стреляешь на пол - звук, (я добавил новый тип - "metal")

Не знаю, мои познания в SED не велики, но посмотри как это сделано, например в D-6.

Цитата vanya109 ()
1. Скажите как увеличить мясо (например убил гнаара бензопилой, мясо больше стало)?

Попробуй просто увеличить модель куска мяса, если это подойдет :)



Я специально не меняю свою Windows XP х32 только ради Сэма...
vanya109 Воскресенье, 12.04.2015, 11:22 | Сообщение # 2296


Сообщений: 274
Награды: 13
Замечания: 0%
 
hripyshanya,
Цитата hripyshanya ()
Не знаю, мои познания в SED не велики, но посмотри как это сделано, например в D-6.

Тогда мне нужны SDK D-6, а их нету, мне лучше узнать как сделать!
Цитата hripyshanya ()
Попробуй просто увеличить модель куска мяса, если это подойдет

Мне нужно количество мясо увеличить, а не размер модели увеличить!


я
hripyshanya Воскресенье, 12.04.2015, 11:42 | Сообщение # 2297


Сообщений: 32
Награды: 0
Замечания: 0%
 
Цитата vanya109 ()
Тогда мне нужны SDK D-6, а их нету, мне лучше узнать как сделать!

Ну если с этим я тупанул, то:
Цитата vanya109 ()
Мне нужно количество мясо увеличить, а не размер модели увеличить!

Лови скрин. Слева четыре кусочка поменьше, справа четыре кусочка в два раза больше. Только не говори что визуально не создается впечатление, в том что правая кучка больше.

Прикрепления: 0871390.jpg (88.3 Kb)



Я специально не меняю свою Windows XP х32 только ради Сэма...
vanya109 Воскресенье, 12.04.2015, 11:44 | Сообщение # 2298


Сообщений: 274
Награды: 13
Замечания: 0%
 
Цитата hripyshanya ()
Лови скрин. Слева четыре кусочка поменьше, справа четыре кусочка в два раза больше. Только не говори что визуально не создается впечатление, в том что правая кучка больше.

Я же говорю : мне нужно количество, а не размер!


я
ST27 Воскресенье, 12.04.2015, 12:02 | Сообщение # 2299


Сообщений: 457
Награды: 7
Замечания: 0%
 
m_fBodyParts отвечает за это самое количество в каждом унаследованном от EnemyBase монстре

- My Personal Site -
CAHEK Среда, 15.04.2015, 08:09 | Сообщение # 2300


Сообщений: 794
Награды: 16
Замечания: 0%
 
Вопросы.
1. Как можно вывести текст на экран, кроме как через функцию PrintCenterMessage.
2. Я с клонировал ентию "Damager" и переделал ее так.
Код

           if (penVictim!=NULL) {
             if (!(penVictim==m_penLastDamaged && _pTimer->CurrentTick()<m_tmLastDamage+0.1f))
             {
//            InflictDirectDamage(penVictim, penInflictor,  m_dmtType, m_fAmmount,  
//              penVictim->GetPlacement().pl_PositionVector, FLOAT3D(0,1,0));
//              m_penLastDamaged = penVictim;
//              m_tmLastDamage = _pTimer->CurrentTick();
      ((Lc*)&*m_penLastDamaged)->Funkcia(m_iNOMER);     Пробовал по очереди
                           ((Lc*)&*penVictim)->Funkcia(m_iNOMER);            Пробовал по очереди

У личинки (это враг) добавил функцию
Код

void Funkcia(INDEX m_iNOMER) {
m_penMarker = NULL;
     switch (m_iNOMER) {
            case 0:
            GetModelInstance()->AddAnimation(idzero, AN_LOOPING|AN_NORESTART|AN_CLEAR,1,0);
            break;
            case 1:
            Prig();
     break;      
            case 2:
            GetModelInstance()->AddAnimation(idL1, AN_LOOPING|AN_NORESTART|AN_CLEAR,1,0);
     break;           
     default: ASSERT(default);
     }
   }

В едиторе поставил тачфилд, который работает только по врагам.
При попадании Личинки на тачфилд игра вылетает в 50% случаев. В остальные 50% все работает как надо.


Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
thecre Среда, 15.04.2015, 12:20 | Сообщение # 2301


Сообщений: 3449
Награды: 28
Замечания: 0%
 
Советую запускать в режиме отладки. Если студия настроена правильно, то при вылете ты сможешь посмотреть, на каком именно моменте возникла проблема, а также значения переменных в этот момент.

SLAwww Среда, 15.04.2015, 20:46 | Сообщение # 2302


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Что это вообще за кустарный метод с AddAnimation? Ты ведь не добавляешь к модели новую анимацию.

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.

and so ended our search.
CAHEK Четверг, 16.04.2015, 06:20 | Сообщение # 2303


Сообщений: 794
Награды: 16
Замечания: 0%
 
В оригинале я планировал выполнить некую функцию. " Prig(); " А GetModelInstance()->AddAnimation(idL1, AN_LOOPING|AN_NORESTART|AN_CLEAR,1,0);
я поставил чисто что бы проверить работоспособность системы после того как заметил 50 % вылеты.
Я хотел реализовать выполнение врагом различных действий при попадании на тачфилд. Взял дамагер. Перепилил, что бы он в место урона, ентии которой попалась на тачфилд, отправил некое число "m_iNOMER". А у врага уже в зависимости от числа выполняем функцию.
P.S. Если это важно. У другой ентии я подобным образом вызываю и анимацию у СКА модели (Точнее мне подсказали сделать так). А, что есть идей лучше ?


Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
vanya109 Четверг, 16.04.2015, 12:34 | Сообщение # 2304


Сообщений: 274
Награды: 13
Замечания: 0%
 
Здравствуйте, я уже 3 раза спрашивал : "как добавить звуки шагов и пристрельбе на пол был звук металла? Я добавил тип "metal"!" Я уже устал так спрашивать, если не ответят, мне придется создать отдельную тему. Я конечно понимаю что сложно, но мне правда нужно добавить звуки! Я пробовал что-то сделать, но мне постоянно программа писала ошибку - что-то несуществует (непомню)!

я
ST27 Четверг, 16.04.2015, 14:07 | Сообщение # 2305


Сообщений: 457
Награды: 7
Замечания: 0%
 
В Player и BasicEffects скопируй примеры существующих сурфейсов

- My Personal Site -
SLAwww Четверг, 16.04.2015, 20:39 | Сообщение # 2306


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Цитата CAHEK ()
Я хотел реализовать выполнение врагом различных действий при попадании на тачфилд.

Но зачем тебе AddAnimation?? Тебе ведь нужно проиграть анимацию! Проиграть существующую, а не создать новую, где логика? =Р


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.

and so ended our search.
CAHEK Пятница, 17.04.2015, 08:59 | Сообщение # 2307


Сообщений: 794
Награды: 16
Замечания: 0%
 
Хорошо. Тогда еще вопрос. Как проиграть анимацию у СКА моделей ?

Добавлено (17.04.2015, 08:59)
---------------------------------------------
P.S.Просто у меня работает (хотя судя по Вашим словам работать не должно), и проблем с этим не было. Учитывая то, что именно такой функцией пользовались разработчики у СКА версии зорга.

Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
vanya109 Пятница, 17.04.2015, 20:51 | Сообщение # 2308


Сообщений: 274
Награды: 13
Замечания: 0%
 

Что я там неправильно сделал?


я
ST27 Пятница, 17.04.2015, 21:27 | Сообщение # 2309


Сообщений: 457
Награды: 7
Замечания: 0%
 
Не существует твоего "SURFACE_Metal", а вообще, лучше все такие имена писать капсом

- My Personal Site -
SLAwww Пятница, 17.04.2015, 21:30 | Сообщение # 2310


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Цитата CAHEK ()
Как проиграть анимацию у СКА моделей ?

Чтобы не задавать постоянно такие вопросы, советую сперва заглянуть в интерфейс CModelInstance. Название метода, который ты ищешь, должно быть интуитивно понятно и прокомментировано.
vanya109, ты сам читал, что за ошибку выдал компилятор? Прочитай и скажи, как ты её понимаешь. Потому что она содержит настолько исчерпывающий ответ, что я не мог бы ответить более конкретно.


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.

and so ended our search.
Поиск:

Статистика