Новые сообщения Участники Правила Поиск
Помощь по SDK для Serious Sam 1.05/1.07
Ar2R-devil-PiNKy Пятница, 05.05.2017, 14:28 | Сообщение # 2701


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

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


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


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

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


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


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


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


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


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


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


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


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

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


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

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


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


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


Сообщений: 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 | Сообщение # 2712


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

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


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


Сообщений: 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 | Сообщение # 2715


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

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


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


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


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

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


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

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


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


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


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

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


Рряа? ^..^
Сообщений: 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 | Сообщение # 2722


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

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


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

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


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

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


Сообщений: 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 | Сообщение # 2726


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

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

Мои работы
Masadim8 Воскресенье, 04.08.2019, 18:53 | Сообщение # 2727


Сообщений: 79
Награды: 1
Замечания: 0%
 
А для чего вообще нужен SDK? ;)

SeriousFan311 Воскресенье, 04.08.2019, 20:18 | Сообщение # 2728


Сообщений: 7
Награды: 0
Замечания: 0%
 
Цитата Masadim8 ()
А для чего вообще нужен SDK?

Для создания модов (новые враги/возможности/предметы и т.д.)


Masadim8 Воскресенье, 04.08.2019, 20:43 | Сообщение # 2729


Сообщений: 79
Награды: 1
Замечания: 0%
 
А как к примеру заменить звук выстрела минигана? :D

SeriousFan311 Воскресенье, 04.08.2019, 20:53 | Сообщение # 2730


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

Models\Weapons\MiniGun\Sounds\Fire.wav

Если у тебя нет этих папок, то создай их или открой SE1_00.gro и перенеси их оттуда

3. Fire.wav заменяешь на нужный тебе звук (Этот звук тоже должен быть в формате .wav и называться Fire.wav).


#Seriously!
Поиск: