Новые сообщения Участники Правила Поиск

Страница 82 из 91«1280818283849091»
Модератор форума: SLAwww, thecre, RealCrazyMan 
Форум » Serious Sam » Серьёзное редактирование » Помощь по SDK для Serious Sam 1.05/1.07 (Вопросы по комплекту средств разработки для Serious Sam 1.)
Помощь по SDK для Serious Sam 1.05/1.07
STPROD Понедельник, 19.10.2015, 00:14 | Сообщение # 2431


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

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

kill me.
SLAwww Понедельник, 19.10.2015, 01:20 | Сообщение # 2432


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 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.
STPROD Понедельник, 19.10.2015, 11:02 | Сообщение # 2433


Сообщений: 411
Награды: 3
Замечания: 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, а не в сторону прицела

kill me.
SLAwww Понедельник, 19.10.2015, 14:53 | Сообщение # 2434


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 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.
STPROD Понедельник, 19.10.2015, 15:12 | Сообщение # 2435


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

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

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

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

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

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

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


kill me.
SLAwww Понедельник, 19.10.2015, 16:12 | Сообщение # 2436


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 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.
Ev3nmorn Пятница, 06.11.2015, 16:08 | Сообщение # 2437


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

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

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


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


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


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

kill me.
Andrey Суббота, 07.11.2015, 09:26 | Сообщение # 2440


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

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


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 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 | Сообщение # 2442


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


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


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 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 | Сообщение # 2444


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

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

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


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

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


Сообщений: 266
Награды: 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, убираются аттачменты, анимация. Но не вижу что-то что прерывает это


thecre Четверг, 12.11.2015, 17:55 | Сообщение # 2447


Сообщений: 3432
Награды: 28
Замечания: 0%
 
PlayerActionMarker вообще имеет к этому последнее дело. Попробуй установить оружие в WEAPON_NONE и запрети его менять.

STPROD Четверг, 12.11.2015, 19:36 | Сообщение # 2448


Сообщений: 411
Награды: 3
Замечания: 0%
 
Если хочешь запретить менять спрятанное оружие с помощью ActionMarker'а, то зоведи какую-нить булю, ставь ей true в AutoStoreWeapon, а false, например, в AutoReleasePlayer (или что там такое) и в ChangeWeapon при твоей переменной == true завершать цикл

Добавлено (12.11.2015, 19:36)
---------------------------------------------
*самый простой и костыльный способ*

kill me.
vanya109 Среда, 18.11.2015, 21:44 | Сообщение # 2449


Сообщений: 227
Награды: 5
Замечания: 0%
 
Как сделать чтобы Сэм брал Health item без ограничений когда Сэм 100HP? Я ставил на всех item health true (или наоборот, короче брал из таблетки (ну или из сердечки))!
P.s. когда я в редакторе то все подбирает здоровья, а в игре нет...


Vanya109
http://i.imgur.com/GllGyPA.gif
SLAwww Четверг, 19.11.2015, 00:25 | Сообщение # 2450


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 0%
 
Посмотри, что происходит в Item.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.
BuIlDaLiBlE Четверг, 19.11.2015, 00:28 | Сообщение # 2451


Сообщений: 592
Награды: 12
Замечания: 0%
 
vanya109, TopHealth поменяй, вроде от него зависит.


Bp Services ©:
http://bit.ly/bp_services
vanya109 Четверг, 19.11.2015, 18:24 | Сообщение # 2452


Сообщений: 227
Награды: 5
Замечания: 0%
 
Проблема: После переустановки программы и сдк, почему то entitiesMP нет никаких цветных шрифтов (я перешёл на другой комп, там теперь буду работать)
http://i.imgur.com/89oXwpo.jpg
Но в gameMP всё на месте
http://i.imgur.com/ecJ8xG0.jpg

Можно ли исправить?


Vanya109
http://i.imgur.com/GllGyPA.gif
Andrey Суббота, 21.11.2015, 09:56 | Сообщение # 2453


Сообщений: 266
Награды: 1
Замечания: 0%
 
Хочу сделать чтобы звуков ходьбы было не 2, а 4. Решил сделать через рандом. Добавил переменную, которая рандомится от 0 до 1 (если я правильно понял), и если == 0, то выбирался один звук, иначе второй. Но что-то не получается, и я думаю что дело в рандоме, так как если я поменяю == 0 на == 1, то звук меняется. В чём же дело?
Код
   INDEX SndWalkRandL = SOUND_WALK_L;
   INDEX SndWalkRandR = SOUND_WALK_R;
   FLOAT SndRnd = FRnd();
   FLOAT SndRnd2 = FRnd();
   if (SndRnd == 0) {
    SndWalkRandL = SOUND_WALK_L;
   }   else {
    SndWalkRandL = SOUND_WALK_L2;
   }
   if (SndRnd2 == 0) {
    SndWalkRandR = SOUND_WALK_R;
   }   else {
    SndWalkRandR = SOUND_WALK_R2;
   }
      INDEX iSoundWalkL = SndWalkRandL;
      INDEX iSoundWalkR = SndWalkRandR;


Ar2R-devil-PiNKy Суббота, 21.11.2015, 12:05 | Сообщение # 2454


Великий мечтатель
Сообщений: 2869
Награды: 57
Замечания: 
 
Я конечно не разбираюсь в этом, но для SOUND_WALK_L2 и SOUND_WALK_R2 ты задал хоть что-то?

Мои работы
Andrey Суббота, 21.11.2015, 14:29 | Сообщение # 2455


Сообщений: 266
Награды: 1
Замечания: 0%
 
Ar2R-devil-PiNKy, да, всё остальное сделано. Осталось только как-то заставить рандомить это

SLAwww Суббота, 21.11.2015, 16:25 | Сообщение # 2456


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 0%
 
FRnd() возвращает любые числа в диапазоне от 0 до 1, а не только 0 или 1. Тебе нужно было проверять SndRnd > 0.5f, а не SndRnd == 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 Суббота, 21.11.2015, 18:19 | Сообщение # 2457


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

terrarist Вторник, 01.12.2015, 20:34 | Сообщение # 2458


Сообщений: 26
Награды: 2
Замечания: 0%
 
Дайте мне, ленивой заднице полностью готовый к работе SDK.

Единственный кто убил Крэнки Конга.
SLAwww Вторник, 01.12.2015, 20:46 | Сообщение # 2459


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 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.
STPROD Вторник, 01.12.2015, 20:57 | Сообщение # 2460


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


kill me.
Форум » Serious Sam » Серьёзное редактирование » Помощь по SDK для Serious Sam 1.05/1.07 (Вопросы по комплекту средств разработки для Serious Sam 1.)
Страница 82 из 91«1280818283849091»
Поиск: