Новые сообщения Участники Правила Поиск
Помощь по SDK для Serious Sam 1.05/1.07
ST27 Суббота, 17.10.2015, 15:01 | Сообщение # 2341


Сообщений: 460
Награды: 7
Замечания: 0%
 
В общем перерыл я всё, что мог и ничего всё равно не понял. Для меня это всё работает на магии

- My Personal Site -
SLAwww Суббота, 17.10.2015, 17:32 | Сообщение # 2342


Рряа? ^..^
Сообщений: 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 Суббота, 17.10.2015, 18:01 | Сообщение # 2343


Сообщений: 460
Награды: 7
Замечания: 0%
 
Не понятно, как получить координаты мыши, плюс она же, насколько я знаю, вообще только в центре во время игры, и её нельзя сдвинуть.

- My Personal Site -
SLAwww Суббота, 17.10.2015, 18:44 | Сообщение # 2344


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
В CPlayer в функцию ApplyAction приходит значение типа CPlayerAction. В него входит pa_aViewRotation - вектор, фактически соответствующий скорости движения курсора.

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 Суббота, 17.10.2015, 22:32 | Сообщение # 2345


Сообщений: 460
Награды: 7
Замечания: 0%
 
Ох, надеюсь, это хоть как-нибудь поможет

Добавлено (17.10.2015, 22:32)
---------------------------------------------
Ок, своим способом получилось разобраться, но теперь ещё вопрос. Как можно припарентить камеру к игроку, чтобы при поворотах она не крутилась, а только была на координатах игрока. Пробовал юзать en_plRelativeToParent, но камера дергается при повороте

- My Personal Site -
SLAwww Суббота, 17.10.2015, 23:30 | Сообщение # 2346


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
В смысле, чтобы угол поворота камеры не менялся? Ты можешь просто вручную выставлять его с каждым тиком движка (например, из той же ApplyAction).

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 Суббота, 17.10.2015, 23:47 | Сообщение # 2347


Сообщений: 460
Награды: 7
Замечания: 0%
 
Именно так. Попробую.

Добавлено (17.10.2015, 23:47)
---------------------------------------------
Всё равно дёргается. Игрок движется плавно, а ApplyAction делается через какой-то промежуток времени. Или я как-то не так делаю. Пробовал SetPlacement, Teleport, всё так же

- My Personal Site -
SLAwww Воскресенье, 18.10.2015, 00:12 | Сообщение # 2348


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Попробуй делать это из функции рендеринга (RenderGameView) в самом начале.

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 Воскресенье, 18.10.2015, 14:00 | Сообщение # 2349


Сообщений: 460
Награды: 7
Замечания: 0%
 
Вот теперь всё, спасибо. Весь день с этой мышью возился, а там такой простой способ был, я его наизусть запомнил

Добавлено (18.10.2015, 14:00)
---------------------------------------------
Естесна, когда всё хорошо, появляются баги. Окей, вопрос. Как можно направить угол обзора игрока (m_aLocalViewRotation?) на какие-либо координаты? (мне например нужно на координаты X и Z:
относительно игрока(1) + (координаты мыши(1) - 320) и
относительно игрока(3) + (координаты мыши(2) - 240) )
Использовал DirectionVectorToAngles, но чем дальше я от центра карты (0,0,0), тем больше прибавляется угол почему-то, и игрок смотрит уже не в сторону курсора, а с (отклонением+расстояние до центра)
P.S. координаты мыши(1) - X курсора на экране (от 0 до 640), координаты мыши(2) - Y курсора на экране (от 0 до 480)

- My Personal Site -
SLAwww Воскресенье, 18.10.2015, 15:18 | Сообщение # 2350


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Для начала убедись что твой метод расчёта игровых координат для курсора работает правильно. Телепортируй какой-нибудь маркер под курсор при каждом клике и посмотри, точно ли он попадает под курсор. Преобразование экранных координат в мировые - вообще сложная вещь, я с этим в ССО намучился.
Код
CEntity* EntityUnderCursor(CPlacement3D plViewer, FLOAT3D &o_vPos, int i_w, int i_h, CPlayer* i_player, int x, int y)
{
    // Get a world
    CWorld* world = i_player->GetWorld();
    
    // Turn a viewer's placement accordingly to the mouse coords

    // Some complicated math that has something to do with projections
    float FOV = _pShell->GetFLOAT("plr_fFOV");
    
    // At first, imagine the screen plane is 1m away
    // Now calculate physical dimensions of virtual screen rect
    float screenboxX = 2.0f * tan((FOV * PI) / 360.0f);
    float screenboxY = (screenboxX / (float)(i_w)) * (float)(i_h);

    // Transfer click point coords to screenbox space:
    float coordsX = ((float)x / (float)(i_w)) * screenboxX;
    float coordsY = ((float)((i_h) - y) / (float)(i_h)) * screenboxY;

    // Therefor, the base coords for virtual screen rect are:
    FLOAT3D vScreenBox((-screenboxX / 2.0f) + coordsX, (-screenboxY / 2.0f) + coordsY, -1.0f);

    // Convert the placement
    CPlacement3D plRayTarget(vScreenBox, ANGLE3D(0,0,0));
    plRayTarget.RelativeToAbsolute(plViewer);
    CPlacement3D plRaySource(plViewer.pl_PositionVector, ANGLE3D(0,0,0));
    plRayTarget.AbsoluteToRelative(plRaySource);
    plRayTarget.pl_PositionVector.Normalize();
    DirectionVectorToAnglesNoSnap(plRayTarget.pl_PositionVector, plViewer.pl_OrientationAngle);

    // Cast a ray
    CCastRay crRay(i_player, plViewer);
    crRay.cr_bHitTranslucentPortals = FALSE;
    crRay.cr_bPhysical = FALSE;
    crRay.cr_ttHitModels = CCastRay::TT_COLLISIONBOX;
    world->CastRay(crRay);

    o_vPos = crRay.cr_vHit;
    return crRay.cr_penHit;
}


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 Воскресенье, 18.10.2015, 15:35 | Сообщение # 2351


Сообщений: 460
Награды: 7
Замечания: 0%
 
Ну вообще в углу экрана у меня написаны координаты мыши, и всё правильно, с левого верхнего угла 0,0; снизу справа 640,480

Добавлено (18.10.2015, 15:35)
---------------------------------------------
И ещё по идее у меня не существует мыши в мире, она просто рисуется, и какая бы камера или вид не был активирован, всё от первого угла 0,0 до другого 640,480

- My Personal Site -
SLAwww Воскресенье, 18.10.2015, 15:59 | Сообщение # 2352


Рряа? ^..^
Сообщений: 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 Воскресенье, 18.10.2015, 20:41 | Сообщение # 2353


Сообщений: 460
Награды: 7
Замечания: 0%
 
Извиняюсь, т.к. я только понял, что жестко ступил. Ведь я использовал координаты игрока+мышь, в то время как у мыши были координаты за двести

Добавлено (18.10.2015, 16:41)
---------------------------------------------

Цитата SLAwww ()
Преобразование экранных координат в мировые

Вот теперь я это понял

Добавлено (18.10.2015, 20:38)
---------------------------------------------
Блин, всё, не могу. Ничего не выходит. Ещё тот кусок кода не помогает. При том, что если я хочу создать ентити на курсоре - то всё норм (конечно, с отклонениями небольшими, но это всё работает, если делить координаты мыши на сколько-нибудь), а если те же координаты пытаюсь сунуть игроку, деля, не деля - всегда не относительно игрока, а относительно 0,0,0

Добавлено (18.10.2015, 20:41)
---------------------------------------------
А ещё можно заставить двигаться игрока не относительно своего поворота, а просто по X,Z? А то кроме en_vCurrentTranslationAbsolute ничего не знаю, но он баганный во многих местах

- My Personal Site -
SLAwww Воскресенье, 18.10.2015, 20:57 | Сообщение # 2354


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Он не баганный, просто ты не умеешь пользоваться. А игроку ты должен давать не конечные координаты, куда он должен идти, а скорость движения и поворота, которую нужно расчитывать исходя из координат цели.
А функция, которую я дал, гарантированно работает без всяких делений координат. Там есть аргументы: i_w и i_h - размеры DrawPort'a, x и y - координаты курсора. Ничего не нужно делить самому.


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 Понедельник, 19.10.2015, 00:14 | Сообщение # 2355


Сообщений: 460
Награды: 7
Замечания: 0%
 
Чооорд, может я что-то упускаю или просто туплю, но всё равно не понимаю как (даже с тем кодом) поворачивать игрока в сторону мыши, вид сверху вообще

Добавлено (19.10.2015, 00:14)
---------------------------------------------
Короче говоря, "сделайте за меня"

- My Personal Site -
SLAwww Понедельник, 19.10.2015, 01:20 | Сообщение # 2356


Рряа? ^..^
Сообщений: 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 Понедельник, 19.10.2015, 11:02 | Сообщение # 2357


Сообщений: 460
Награды: 7
Замечания: 0%
 
ГОСПОДИ, ОПЯТЬ! Опять та самая ситуация, когда ты упустил ТАКУЮ ВЕЩЬ, которую невозможно упустить.
Короче, в ту функцию в DirectionVectorToAngles я всунул vScreenbox.Normalize и ВСЁ ЗАРАБОТАЛО! КАК НАДО! И БЕЗ ОТКЛОНЕНИЙ!!! Правда, я ещё подфиксил всё, т.к. игрок поворачивался не за мышкой, а против неё и при приближении мышки ближе чем 1,1 мировых координат, игрок смотрел только прямо. Собстна, вот что я сделал:
Код
// Some complicated math that has something to do with projections
   float FOV = 90;
   int x,y,i_w,i_h;
   x = penThis->m_msPoint(1);
   y = penThis->m_msPoint(2);
   i_w = 640;
   i_h = 480;
   
   // At first, imagine the screen plane is 1m away
   // Now calculate physical dimensions of virtual screen rect
   float screenboxX = 2.0f * tan((FOV * PI) / 360.0f);
   float screenboxY = (screenboxX / (float)(i_w)) * (float)(i_h);
   
   // Transfer click point coords to screenbox space:
   float coordsX = ((float)x / (float)(i_w)) * screenboxX;
   float coordsY = ((float)((i_h) - y) / (float)(i_h)) * screenboxY;
   
   // Therefor, the base coords for virtual screen rect are:
   FLOAT3D vScreenBox((-screenboxX / 2.0f) + coordsX, 1.0f, -((-screenboxY / 2.0f) + coordsY));

   penThis->m_msPointFixed(1) = vScreenBox(1)*10; // world coords X
   penThis->m_msPointFixed(2) = vScreenBox(3)*10; // world coords Z
   
   // Convert the placement
   /*CPlacement3D plRayTarget(vScreenBox, ANGLE3D(0,0,0));
   plRayTarget.RelativeToAbsolute(penThis->GetPlacement());
   CPlacement3D plRaySource(penThis->GetPlacement().pl_PositionVector, ANGLE3D(0,0,0));
   plRayTarget.AbsoluteToRelative(plRaySource);
   plRayTarget.pl_PositionVector.Normalize();*/ // eto mne ne nuzno
   DirectionVectorToAnglesNoSnap((vScreenBox.Normalize())/10, penThis->m_aLocalRotation);
   DirectionVectorToAnglesNoSnap((vScreenBox.Normalize())/10, penThis->m_aLocalViewRotation);

И размер DrawPorta мне не важен, у меня при любом разрешении мышь в одном углу 0,0, а в другом 640,480

Добавлено (19.10.2015, 11:02)
---------------------------------------------
Хорошо, следующий бесящий баг. Как можно при столкновении с врагами/любыми ентити запретить игроку случайно повернуться? Иначе угол съезжает. Ещё такой баг есть при возрождении: прицел фиг знает где, а угол игрока 0, а не в сторону прицела

- My Personal Site -
SLAwww Понедельник, 19.10.2015, 14:53 | Сообщение # 2358


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Ты не "подфиксил", а опять сделал не так, как тебе сказали. Во-первых, координаты курсора в пределах 640х480 - бред, потому что никто сейчас не использует такое разрешение, а у тебя эти координаты записываются в INDEX, в результате теряется точность. Во-вторых, raycasting таки нужен, потому что игрок не всегда будет ходить по ровной поверхности с постоянной высотой. В-третьих, откуда мне знать, почему у твоего игрока угол не такой, как надо? Ты сам его так накодил. В-четвёртых, vScreenBox.Normalize())/10. Откуда взялось это 10? Что оно означает?

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 Понедельник, 19.10.2015, 15:12 | Сообщение # 2359


Сообщений: 460
Награды: 7
Замечания: 0%
 
Цитата SLAwww ()
координаты курсора в пределах 640х480 - бред, потому что никто сейчас не использует такое разрешение

Я не знаю, как оно так работает, но 640х480 максимальные точки - не пиксели экрана. Такой максимум при любом разрешении, даже при фулскрине, я всё тестил. Просто я мышь очень странным способом накодил, вот так и вышло.
Цитата SLAwww ()
игрок не всегда будет ходить по ровной поверхности с постоянной высотой

Может я опять как-то не так объяснил, но я пытаюсь создать эффект TDS, где высота игрока мне вообще не нужна, у меня игрок крутится только по оси "H"
Цитата SLAwww ()
vScreenBox.Normalize())/10. Откуда взялось это 10? Что оно означает?

Если не делить, то
Цитата STPROD ()
при приближении мышки ближе чем 1,1 мировых координат, игрок смотрел только прямо

Цитата SLAwww ()
у тебя эти координаты записываются в INDEX

В твою функцию это передается как int.
И да,
Цитата STPROD ()
Как можно при столкновении с врагами/любыми ентити запретить игроку случайно повернуться? Иначе угол съезжает.

Его угол по H сбивается, и мы начинаем крутить курсором так же, но +сдвиг. Я конечно знаю, как это пофиксить, но тогда ноги не будут вращаться в сторону мыши, а если сдвинуться - наплевать, тело всегда будет на мышь смотреть


- My Personal Site -
SLAwww Понедельник, 19.10.2015, 16:12 | Сообщение # 2360


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Цитата STPROD ()
я мышь очень странным способом накодил

Наговнокодил. Поищи, откуда берутся эти 640х480 и сделай так, чтобы цифры соответствовали реальному разрешению экрана. Ctrl-Shift-F-640.
Цитата STPROD ()
высота игрока мне вообще не нужна, у меня игрок крутится только по оси "H"

Все три координаты нужны, если ты проецируешь двухмерный курсор в трёхмерный мир.
Цитата STPROD ()
при приближении мышки ближе чем 1,1 мировых координат, игрок смотрел только прямо

Тогда это костыль. Нужно решить проблему, а не ставить заплатку, которая тебе потом отзовётся. Расставь CPrintF'ы и смотри, какие приходят значения, когда курсор вблизи игрока.
Цитата STPROD ()
В твою функцию это передается как int.

Потому что она принимала реальное разрешение DrawPort'a, а не взятые от балды 640х480.
Цитата STPROD ()
Я конечно знаю, как это пофиксить

Ага, переписать всё с нуля. И рассчитывать скорость поворота так, как я говорил.


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.
polymorn Пятница, 06.11.2015, 16:08 | Сообщение # 2361


Сообщений: 125
Награды: 16
Замечания: 0%
 
такой вопрос, как убрать из игры паузу? или же как сделать так, чтобы при паузе музыка тоже ставилась на паузу? предпочительней второе конечно, это же не слишком сложно?

Добавлено (06.11.2015, 16:08)
---------------------------------------------
решено, спасибо, SLAwww!

CAHEK Пятница, 06.11.2015, 16:19 | Сообщение # 2362


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


Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
ST27 Пятница, 06.11.2015, 16:44 | Сообщение # 2363


Сообщений: 460
Награды: 7
Замечания: 0%
 
В Score Medium и Score Heavy попробуй поставить очень большое число. Например 1000000

- My Personal Site -
Andrey Суббота, 07.11.2015, 09:26 | Сообщение # 2364


Сообщений: 268
Награды: 1
Замечания: 0%
 
Почему когда Сэм прыгает и двигается в прыжке проигрываются звуки хождения стандартного сюрфейса, независимо от сюрфейса который под ним. То есть если прыгать по снегу, то в полёте звуки как Сэм идёт по камню. Как это исправить?

SLAwww Воскресенье, 08.11.2015, 18:16 | Сообщение # 2365


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Поищи, где в Player.es проигрываются эти звуки, и при каких условиях они проигрываются.

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.
Andrey Вторник, 10.11.2015, 09:47 | Сообщение # 2366


Сообщений: 268
Награды: 1
Замечания: 0%
 
SLAwww, я пока что начинаю изучать SDK и нихера там не понимаю, ток что пока не нашёл. Всё что я смог сделать это выпилить читы и подредактировать скорость передвижения.
У меня ещё вопрос: мне нужно сделать так, чтобы в моде оружия не было вообще, нужно выпиливать кольт и нож, или можно как-то сделать а-ля спрятать оружие в PlayerActionMarker, только навсегда?


SLAwww Вторник, 10.11.2015, 23:28 | Сообщение # 2367


Рряа? ^..^
Сообщений: 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.
Andrey Четверг, 12.11.2015, 14:06 | Сообщение # 2368


Сообщений: 268
Награды: 1
Замечания: 0%
 
SLAwww, ок ясно. Не думал что это слово так воспримется, учту.

Добавлено (12.11.2015, 14:06)
---------------------------------------------
Начал немного разбираться и нашёл, что оружие можно убрать с помощью m_iAvailableWeapons. Поставил значение на 0, в итоге кольт исчез, а нож остался. Можно ли убрать нож этим же способом?

thecre Четверг, 12.11.2015, 15:02 | Сообщение # 2369


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

Andrey Четверг, 12.11.2015, 16:28 | Сообщение # 2370


Сообщений: 268
Награды: 1
Замечания: 0%
 
thecre, хорошо я попробую. Но всё же не отхожу от мысли сделать бесконечный storeweapons у playeractionmarker'а. Только пока даже не могу найти хоть что-то связанное с его прерыванием по кнопке.
Код
      } else if (GetActionMarker()->m_paaAction==PAA_STOREWEAPON) {
        autocall AutoStoreWeapon() EReturn;

Вот действие, и оно ссылается на
Код
AutoStoreWeapon(EVoid)
  {
    // store current weapon slowly
    CPlayerAnimator &plan = (CPlayerAnimator&)*m_penAnimator;
    plan.BodyAnimationTemplate(BODY_ANIM_WAIT,
      BODY_ANIM_COLT_REDRAWSLOW, BODY_ANIM_SHOTGUN_REDRAWSLOW, BODY_ANIM_MINIGUN_REDRAWSLOW,
      0);
    autowait(plan.m_fBodyAnimTime);

    m_iAutoOrgWeapon = ((CPlayerWeapons&)*m_penWeapons).m_iCurrentWeapon;  
    ((CPlayerWeapons&)*m_penWeapons).m_iCurrentWeapon = WEAPON_NONE;
    ((CPlayerWeapons&)*m_penWeapons).m_iWantedWeapon = WEAPON_NONE;
    m_soWeaponAmbient.Stop();

    // sync apperances
    GetPlayerAnimator()->SyncWeapon();
    // remove weapon attachment
    CPlayerAnimator &plan = (CPlayerAnimator&)*m_penAnimator;
    plan.m_iWeaponLast = m_iAutoOrgWeapon;
    plan.RemoveWeapon();
    GetPlayerAnimator()->SyncWeapon();

    ((CPlayerWeapons&)*m_penWeapons).m_iCurrentWeapon = (WeaponType) m_iAutoOrgWeapon;
    plan.BodyAnimationTemplate(BODY_ANIM_WAIT, BODY_ANIM_COLT_DEACTIVATETOWALK,
      BODY_ANIM_SHOTGUN_DEACTIVATETOWALK, BODY_ANIM_MINIGUN_DEACTIVATETOWALK, AOF_SMOOTHCHANGE);
    ((CPlayerWeapons&)*m_penWeapons).m_iCurrentWeapon = WEAPON_NONE;

    autowait(plan.m_fBodyAnimTime);

    // return to auto-action loop
    return EReturn();
  }

И всё что я здесь вижу это то, как прячется оружие, выбирается WEAPON_NONE, убираются аттачменты, анимация. Но не вижу что-то что прерывает это


Поиск: