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


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


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


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

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


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

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


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

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

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


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


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

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


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

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


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

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


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


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


Creative virtuoso
Сообщений: 3136
Награды: 58
Замечания: 
 
Где-то скобку не открыл %)

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


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


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


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


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


Сообщений: 142
Награды: 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


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


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


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


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

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


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

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


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


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


Сообщений: 446
Награды: 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


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

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


Сообщений: 142
Награды: 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)


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


Сообщений: 446
Награды: 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


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

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


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


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


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

Jack_Stone Воскресенье, 24.09.2017, 12:52 | Сообщение # 2752


Сообщений: 142
Награды: 1
Замечания: 0%
 
Привет всем) можно ли как-то поменять положение строк в меню? Если да, то где это меняется? :)

Heming_Hitrowski Воскресенье, 24.09.2017, 16:36 | Сообщение # 2753


Double Jumper
Сообщений: 885
Награды: 32
Замечания: 0%
 
Jack_Stone, по-моему для этого не хватит SDK, менять надо в SeriousSam.exe
Сообщение отредактировал Heming_Hitrowski - Воскресенье, 24.09.2017, 16:54


Jack_Stone Суббота, 25.11.2017, 10:47 | Сообщение # 2754


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

SLAwww Воскресенье, 26.11.2017, 00:20 | Сообщение # 2755


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

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.
Jack_Stone Вторник, 28.11.2017, 20:10 | Сообщение # 2756


Сообщений: 142
Награды: 1
Замечания: 0%
 
Как сделать, чтобы Сэм был перпендикулярен поверхности всегда? Например, идет он по плоскости, 90 градусов к ней. Затем идет по склону градусов 30, и перпендикулярен он уже этому склону. Где это можно прописать? Я надеюсь, это не самое нутро движка? <_<

Jack_Stone Вторник, 26.12.2017, 08:34 | Сообщение # 2757


Сообщений: 142
Награды: 1
Замечания: 0%
 
Ребят, подскажите, что отвечает за свободное перемещение под водой.Никак найти не могу, где это прописано. Если кто знает :) Мне нужно это использовать, только без звукового эффекта воды и покачиваний камеры. :)

Jack_Stone Пятница, 19.01.2018, 22:40 | Сообщение # 2758


Сообщений: 142
Награды: 1
Замечания: 0%
 
Народ, а где прописан цвет транслирующихся сообщений типа "Использовать" и "Подвергнуть анализу"?

134D4$$_DUD3 Понедельник, 13.08.2018, 18:01 | Сообщение # 2759


Сообщений: 6
Награды: 0
Замечания: 0%
 
Подскажите пожалуйста, из-за чего происходит ошибка.
D:\Program Files\Croteam\MyMod\Sources\Engine/Graphics/GfxLibrary.h(7) : fatal error C1083: Cannot open include file: 'd3d8.h': No such file or directory
Error executing cl.exe.


Incurso Четверг, 28.03.2019, 09:58 | Сообщение # 2760


Сообщений: 472
Награды: 15
Замечания: 0%
 
Имею копию класса MovingBrush, какую часть кода из EnemyBase нужно выдернуть и в какое место вставить, что бы заставить мой MB следить за игроком?

Попарнопараллельнопорно 8B

Мои работы
Поиск:

Статистика