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

Страница 92 из 92«12909192
Модератор форума: SLAwww, thecre, RealCrazyMan 
Форум » Serious Sam » Серьёзное редактирование » Помощь по SDK для Serious Sam 1.05/1.07 (Вопросы по комплекту средств разработки для Serious Sam 1.)
Помощь по SDK для Serious Sam 1.05/1.07
Heming_Hitrowski Вторник, 28.03.2017, 14:12 | Сообщение # 2731

Double Jumper
Сообщений: 832
Награды: 23
Замечания: 0%
 
Да ты что! Тебе же надо просто звук добавить! Посмотри как, например, в процедуре SwingKnife проигрывается звук взмаха. Про Bullet вообще забудь)
Сообщение отредактировал Heming_Hitrowski - Вторник, 28.03.2017, 14:13


Jack_Stone Среда, 29.03.2017, 19:29 | Сообщение # 2732


Сообщений: 105
Награды: 1
Замечания: 0%
 
Heming_Hitrowski, я так и сделал :) просто я изначально хотел, чтобы при ударе по каждой поверхности проигрывался разный звук. А так то да)) Ничего тут сложного нет, прописал собственно как и все остальные звуки :D

JS
Jack_Stone Четверг, 13.04.2017, 18:12 | Сообщение # 2733


Сообщений: 105
Награды: 1
Замечания: 0%
 
Народ, подскажите, пожалуйста, следующее. В одном условии мне нужно прописать наличие оружия, неважно есть к нему патроны или нет, важно то, что его уже подбирали. Если точнее, то я про функцию AddDefaultAmmoForWeapon. У меня для каждого оружия по 2 переменных патронов - магазин и патроны в запасе, так вот я хочу сделать так, чтобы при ПЕРВОМ подборе AmmoPicked равнялось 0, а при последующих подборах оружия AmmoPicked равнялось количеству патронов в магазине, потому и логично каким-то образом прописать наличие оружия у Сэма. Может кто-нибудь с этим сталкивался уже? :)

JS
Jack_Stone Пятница, 05.05.2017, 09:12 | Сообщение # 2734


Сообщений: 105
Награды: 1
Замечания: 0%
 
Подскажите пожалуйста как сделать так, чтобы функция активировалась, когда Сэм находится внутри определенной области, как ,например, с SoundHolder - звук слышен, только если находишься в пределах FalloffRange. Возможно ли это сделать, не создавая отдельный класс-объект, а используя уже что-то готовое, хоть тот же SoundHolder, но чтобы при попадании в область FalloffRange, срабатывало что-то из другого класса - менялась какая-нибудь переменная. Это возможно?

Если попроще, то так -

Надо, чтобы во время нахождения на зоне FalloffRange какого-нибудь объекта, в Player.es какая-то переменная принимала значение TRUE, а при выходе из этой зоны становилась обратно FALSE.
Сообщение отредактировал Jack_Stone - Пятница, 05.05.2017, 12:43


JS
Ar2R-devil-PiNKy Пятница, 05.05.2017, 14:28 | Сообщение # 2735


Великий мечтатель
Сообщений: 2887
Награды: 57
Замечания: 
 
Посмотри в энтитии WatchPlayer, там есть отдельное триггирование при нахождении внутри и вне его зоны

Мои работы
Поддержать можно тут
Jack_Stone Пятница, 05.05.2017, 16:17 | Сообщение # 2736


Сообщений: 105
Награды: 1
Замечания: 0%
 
Ar2R-devil-PiNKy, спасибо за подсказку, WatchPlayers вроде как подходит. Но проблема с объявлением переменной:

пишу вот это в том месте, где это должно срабатывать (m_bBuyActive - та самая переменная которая должна меняться) -
Код
((CPlayer*)&*m_penPlayer)->m_bBuyActive = TRUE;


и получаю вот это -

Код
error C2059: syntax error : ')'


Что я не так сделал?


JS
Ar2R-devil-PiNKy Пятница, 05.05.2017, 17:09 | Сообщение # 2737


Великий мечтатель
Сообщений: 2887
Награды: 57
Замечания: 
 
Где-то скобку не открыл %)

Мои работы
Поддержать можно тут
Jack_Stone Пятница, 05.05.2017, 17:18 | Сообщение # 2738


Сообщений: 105
Награды: 1
Замечания: 0%
 
Ar2R-devil-PiNKy, так открыто всё :) а если добавляю еще пишет PARSE ERROR. Вот что за фигня.
Может объявлять надо как-то по-особому и делать отсылку на Player?
Сообщение отредактировал Jack_Stone - Пятница, 05.05.2017, 17:24


JS
shadow_tin Суббота, 06.05.2017, 06:44 | Сообщение # 2739


Сообщений: 157
Награды: 6
Замечания: 0%
 
Jack_Stone, ошибка такого рода может быть вызвана любой лишней или недостающей скобкой, отсутствием точки с запятой и т.п. Нужно проверять не только строку, на которую указывает компилятор, но и весь блок/файл выше.


"Просто у него окрепшая физика, а ты ещё не дорос..."
Jack_Stone Суббота, 06.05.2017, 11:35 | Сообщение # 2740


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

Вот другой вопрос:

В WatchPlayers я прописал доп. переменную (m_bBuy)

Код
    // send range event
    if (m_bRangeWatcher && m_penOwner==NULL) {
//     SendInRange(this, m_eetEventClose, FLOATaabbox3D(GetPlacement().pl_PositionVector, m_fDistance));

      m_bBuy = TRUE;

    // send to owner
    } else {
      SendToTarget(m_penOwner, m_eetEventClose, m_penCurrentWatch);
    }
  };


Так вот как сделать, чтобы изменении этой переменной вызывало изменение другой переменной в Player?
В Player я прописал это:

Код
BOOL m_bBuyActive2 = ((CWatchPlayers&)*m_penOwner).m_bBuy;


То есть при попадании в область WatchPlayers m_bBuy становится TRUE, а значит и m_bBuyActive2 тоже должна становиться TRUE. Логически вроде бы правильно написано, но не работает, а виснет.

В общем вопрос - как сделать, чтобы изменение значения переменной в WatchPlayers меняло значение переменной в Player ?

Или правильнее делать отсылку сразу из WatchPlayers на Player ?
Цитата Jack_Stone ()
((CPlayer*)&*m_penPlayer)->m_bBuyActive2 = TRUE;
Сообщение отредактировал Jack_Stone - Суббота, 06.05.2017, 11:36


JS
Jack_Stone Вторник, 09.05.2017, 20:44 | Сообщение # 2741


Сообщений: 105
Награды: 1
Замечания: 0%
 
Вопрос не по теме - подскажите, пожалуйста, как открыть файл PLR. :)
Сообщение отредактировал Jack_Stone - Вторник, 09.05.2017, 22:45


JS
CAHEK Среда, 05.07.2017, 11:40 | Сообщение # 2742


Сообщений: 730
Награды: 11
Замечания: 0%
 
Ситуация. Обычно враг поворачивается к игроку или идет к игроку. Вопрос: как сделать, что бы враг всегда смотрел на тебя или поворачивается постоянно к игроку? Вопрос актуален и к воздушным противникам.

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


Сообщений: 105
Награды: 1
Замечания: 0%
 
Подскажите, плиз. Есть ли в Сэме такое понятие, как "стороны света"? Хочу сделать компас. Ведь в carnivores cityscape он есть, а игра сделана на движке Сэма. Есть ли какое-нибудь обозначение постоянного нуля угла, как например, FLOAT3D (0,0,0)?

JS
Jack_Stone Пятница, 11.08.2017, 20:49 | Сообщение # 2744


Сообщений: 105
Награды: 1
Замечания: 0%
 
Как сделать, чтобы при нажатии на кнопку в интерфейсе появлялась текстура, но текстура эта не должна быть статичной (как все остальные - текстура брони, здоровья и тд), её можно менять, загружая в каком-нибудь объекте в редакторе, например, в Триггере? <_<
Сообщение отредактировал Jack_Stone - Пятница, 11.08.2017, 20:51


JS
seriously_petr Суббота, 12.08.2017, 17:24 | Сообщение # 2745


Сообщений: 445
Награды: 4
Замечания: 0%
 
Цитата Jack_Stone ()
Как сделать, чтобы при нажатии на кнопку в интерфейсе появлялась текстура, но текстура эта не должна быть статичной (как все остальные - текстура брони, здоровья и тд), её можно менять, загружая в каком-нибудь объекте в редакторе, например, в Триггере? <_<


Jack_Stone, Один из способов - сделать в энтите свойство типа CModelObject и загружать текстуру туда, а ещё нужно не забыть сделать свойство с типом CTFileName для выбора пути к файлу текстуры иконки.

Пример реализации можете подсмотреть в моём проекте. В энтите HudPicDisplay [Наверное это cсылка]
Сообщение отредактировал seriously_petr - Суббота, 12.08.2017, 17:26


Jack_Stone Суббота, 12.08.2017, 20:42 | Сообщение # 2746


Сообщений: 105
Награды: 1
Замечания: 0%
 
seriously_petr, спасибо :)

JS
Jack_Stone Среда, 16.08.2017, 20:51 | Сообщение # 2747


Сообщений: 105
Награды: 1
Замечания: 0%
 
У меня проблема с кнопками оружия: Недавно перестал работать 8й слот, затем 7й, теперь еще больше кнопок не работают, а некоторые выбирают не то оружие. В чем может быть проблема? Я добавлял новые функции.

Код
// defines representing flags used to fill player buttoned actions
#define PLACT_FIRE                (1L<<0)
#define PLACT_RELOAD              (1L<<1)
#define PLACT_WEAPON_NEXT         (1L<<2)
#define PLACT_WEAPON_PREV         (1L<<3)
#define PLACT_WEAPON_FLIP         (1L<<4)
#define PLACT_USE                 (1L<<5)
#define PLACT_COMPUTER            (1L<<6)
#define PLACT_3RD_PERSON_VIEW     (1L<<7)
#define PLACT_CENTER_VIEW         (1L<<8)
#define PLACT_USE_HELD            (1L<<9)
#define PLACT_SNIPER_ZOOMIN       (1L<<10)
#define PLACT_SNIPER_ZOOMOUT      (1L<<11)
#define PLACT_SNIPER_USE          (1L<<12)
#define PLACT_FIREBOMB            (1L<<13)
#define PLACT_FLASHLIGHT          (1L<<14)
#define PLACT_MEDKIT              (1L<<15)
#define PLACT_DRUG                (1L<<16)
#define PLACT_FOV90               (1L<<17)
#define PLACT_DROP                (1L<<18)
#define PLACT_BUYMENU             (1L<<19)
#define PLACT_TEAM                (1L<<20)
#define PLACT_PLAYERSLIST         (1L<<21)
#define PLACT_SPRINT              (1L<<22)
#define PLACT_AIMER               (1L<<23)
#define PLACT_COMPASS             (1L<<24)
#define PLACT_OBJECTS             (1L<<25)
#define PLACT_MAP                 (1L<<26)
#define PLACT_HANDTEX             (1L<<27)
#define PLACT_REPAIR              (1L<<28)
#define PLACT_WOUNDCURE           (1L<<29)
#define PLACT_SELECT_WEAPON_SHIFT (30)
#define PLACT_SELECT_WEAPON_MASK  (0x1FL<<PLACT_SELECT_WEAPON_SHIFT)


JS
seriously_petr Среда, 16.08.2017, 21:42 | Сообщение # 2748


Сообщений: 445
Награды: 4
Замечания: 0%
 
Jack_Stone, Состояния кнопок записываются в переменную-маску, размер которой 4 байта или 32 бита. Это означает, что можно сделать обработку для 32 кнопок используя по одному биту на кнопку.

Внутри этой маски 5 бит отведено под кнопку выбора оружия (определённого). Т.е. цифровые клавиши 1-8.
Потому что кротим решили таким образом сэкономить число используемых бит за счёт того что игроку незачем получать сигнал для выбора сразу двух пушек.

Почему 5?
Бит может иметь два состояния. Посчитаем число комбинаций.
2 * 2 * 2 * 2 * 2 = 32

Таким образом эти 5 бит могут составлять 32 комбинации. Видимо кроты сделали с запасом, думая что будут добавлять больше пушек.

Получим диапазон значений:
32 - 1 = 31

Таким образом диапазон значений: [0; 31]
0 в этом 5-битном числе используется для обозначения того, что кнопка не нажата.
А любое другое число служит для выбора пушки в группе с соответствующим номером группы.

Чтобы корректно работал выбор оружия по цифровым клавишам тебе необходимо чтобы после смещения (PLACT_SELECT_WEAPON_SHIFT) было свободно 5 бит.

А у тебя PLACT_SELECT_WEAPON_SHIFT это 30! Ты использовал слишком много бит в маске кнопок.
Сообщение отредактировал seriously_petr - Среда, 16.08.2017, 21:50


Jack_Stone Среда, 16.08.2017, 21:52 | Сообщение # 2749


Сообщений: 105
Награды: 1
Замечания: 0%
 
я так понял, больше функций добавлять не надо? или как? :(

JS
seriously_petr Среда, 16.08.2017, 21:57 | Сообщение # 2750


Сообщений: 445
Награды: 4
Замечания: 0%
 
Jack_Stone, Я думаю, что 32 - 5 = 27, значит всего можно использовать всего 27 кнопок до этого 5-битного числа.
Сообщение отредактировал seriously_petr - Среда, 16.08.2017, 21:58


Jack_Stone Четверг, 17.08.2017, 09:14 | Сообщение # 2751


Сообщений: 105
Награды: 1
Замечания: 0%
 
seriously_petr, спасибо еще раз)

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