Heming_Hitrowski, хочу кое что уточнить. Подскажи, пожалуйста, если мы делаем так, чтобы один класс врагов атаковал остальные, наряду с player, нам нужно создать и распознавание отдельным классом всех остальных классов, и распознавание остальными классами отдельного класса? Как выделить отдельный класс врагов? Я продублировал итерации для врагов, как ты советовал, но наверно что-то не то все равно сделал, результата нет пока.
Порыскал на форуме еще по данной теме. Толком ничего нет. Максимум, что вышло - враг атакует другого, только если тот в него попадет. У других людей с форума тоже только это получалось. Не выходит заставить врага видеть других врагов, а не только "чувствовать" их.
Если ты имеешь в виду разные группы врагов (например, гнаары, которые могут атаковать только гарпий), то в xbox-моде когда-то придумали целочисленную переменную Attack Group. Суть очень простая - в цикле поиска по врагам проверяем, равны ли группы текущего EnemyBase и возможной цели. Если они равны, то два этих EnemyBase не атакуют друг друга, и наоборот. Еще можно сделать оптимизацию и добавить некое условие, из-за которого не все твои враги будут искать других врагов (такие циклы поиска могут заметно замедлить мод, т.к. идет поиск по всем объектам, включая триггеры, маркеры и т.п.).
Цитата
Не выходит заставить врага видеть других врагов, а не только "чувствовать" их.
Попробуй запустить студию в режиме дебага (я писал статью на эту тему), либо проставь CPrintF, чтобы узнать, отрабатывает ли твой цикл поиска по врагам правильно. Если враг нашелся в watcher, то смотри дальше - в EnemyBase есть функция
Не выходит заставить врага видеть других врагов, а не только "чувствовать" их.
Это потому что твой класс CWatcher умеет видеть только игроков, а нужно научить его видеть и врагов тоже. Враги используют CWatcher чтобы видеть игроков.
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.
СНОВА НУЖНА ПОМОЩЬ! Объясните, пожалуйста, как иконка бензопилы идет после ножа (при смене оружия), если у ножа 1й индекс, а у пилы 10й? Как цикл for 10 после 1 выбирает? Или фокус тут не в цикле? Заранее спасибо!
=============================
Вопрос отпал, разобрался сам
Сообщение отредактировалJack_Stone - Четверг, 14.05.2020, 11:35
Я прочитал статью как настроить SDK всё настроил сохранил и выключил, а потом хочу открыть файл с настройками нажимаю открыть файл и c++6.0 вылетает. И мне что теперь каждый раз заново настраивать?
Добавлено (14.11.2020, 17:28) --------------------------------------------- А, всё понял
Добавлено (14.11.2020, 17:28) --------------------------------------------- Я дурачок...
Народ есть такой вопрос с темой по читам, где я смогу посмотреть базу, я знаю что они через консоль водятся , но мне надо чтобы ввести их по другому , например не Please giveall ,а SamEnableWeapons к примеру. так же и please god - К примеру SamEnableGod , искал в класcе player.es и PlayerWeapons.es?
Народ Всем привет , есть такая проблема , создал я новый класс (CustomEntity) , у меня в этом классе прописаны 2 функции - 1 функция - если у тебя есть Снайп.Винтовка в руках, то в консоль отправлятся текст "Sniper" Компилирует без ошибок ... НО при подборе самой Снайп.Винтовки или же брони нацеленной на этот класс Редактор вылетает ... Сначала думал что этот класс (PlayerWeapons) добавить в хеш.. - Добавил \ подключил его - #include "EntitiesMP/PlayerWeapons.h" и так же вылетает.( 2 функция с убийством врага работает) Кто сможет сказать где что я не так добавил , или забыл добавить ? сам код прикрепляю ==================================================================================================
Я опередил тут всех по своей глупости, поэтому начну свой вопрос с установки SDK Для тех, у кого куплен TSE в Стиме обязательно скачивать файлы по типу: SDK107_DebugBinaries.zip SDK107_EntitiesSE.zip SDK107_Includes.zip SDK107_ModelsSE.zip? Если да, то в статье от ZIM сказано, что содержимое этих архивов нужно извлечь по папкам, но дело в том, что внутри этих архивов есть ещё одни, их тоже нужно извлекать, или же нужно просто извлечь только одни архивы?
У тебя нигде ничего не записывается в переменную m_penWeapons, она указывает на нуль.
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.
JustRick, посмотри мою статью, может там чуть понятнее для тебя?
До сих пор в топе загрузок и просмотров... Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет... Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.
Народ , есть вопрос : возможно ли в Hud.cpp создать кнопку ,как например в меню Одиночная игра , сетевая и тп, смотрел я класс кнопки в проекте Serious sam :GUI/Gadgets/MGButton.cpp .
НО не как не понимаю как мне это сделать , У меня при нажатии кнопки V пояляется рамка , туда хочу поставить кнопку . Кто подскажет как это сделать? Сначала я думал , что надо подключать сам класс кнопки #include "Serioussam/GUI/Gadgets/MGButton.h" , но нет не работает
Ребят, если кто знает, подскажите пожалуйста, как сделать новый тип сообщения в Инертан с помощью SDK! Ну типа оружие, враги, статистика и т.д.
Добавлено (23.06.2023, 12:20) --------------------------------------------- Слушайте, я создал новое оружие, но почему-то когда я его хочу поставить на уровень, Editor вылетает. Подскажите пожалуйста, в чём причина
Добавлено (24.06.2023, 15:13) --------------------------------------------- Точнее это не новая пушка, это старый добрый GhostBuster из Альфы!
case WIT_GHOSTBUSTER: CPlayerWeapons_Precache(1<<(INDEX(WEAPON_GHOSTBUSTER )-1)); break;
Если я в этой строчке после "WEAPON_" пишу "GHOSTBUSTER", то мой editor просто вылетает, когда я ставлю GHOSTBUSTER, а если я там прописываю другое оружие из классики, то во всех 100% случаев item-модель GHOSTBUSTERа отображается в редакторе уровней правильно, а всегда подбирается СНАЙПЕРКА. Даже если я пишу WEAPON_LASER или другое оружие из классики!
Добавлено (24.06.2023, 15:40) --------------------------------------------- Я даже в Нетриксе сообщение прописал, и самое главное - ОНО АКТИВИРУЕТСЯ! Но с подбором реально проблема!
Сообщение отредактировалe1_42 - Воскресенье, 18.06.2023, 15:37
e1_42, сталкивался со всем, что ты описал, но это было очень давно. Так с лёту не скажешь, в чем проблема. Мой совет: продублируй для гоустбастера всё, что есть и для других пушек в коде, наверное что-то упустил, должно быть аналогично. Хотя я так понимаю, ты это и делал, поэтому просто проверь, идя, например, по коду лазера и сравнивая с тем, что есть для гоустбастера.
У меня тоже есть вопрос: можно динамически изменять объекты на карте (модели, текстуры) во время игры или же во время загрузки уровня, используя настройки игры? <_< Я хочу сделать альтернативный набор оружия, который можно использовать, не меняя то, что есть на уровне, руками. Иначе говоря переключаться между стандартным набором и новым каким-то образом. Пожалуйста, посоветуйте, если кто знает, как это сделать. Спасибо!
Jack_Stone, вот первое что пришло на ум 1) объяви переменную в pShell, типа _pShell->DeclareSymbol("persistent user INDEX plr_iWeaponSet;", &plr_iWeaponSet);
а также переменную, отвечающую за последний выбранный набор оружия plr_iLastWeaponSet
Добавим plr_iWeaponSet как настройку в расширенных возможностях.
2) Теперь нужно отредактировать метод SetCurrentWeaponModel в PlayerWeapons так, чтобы в зависимости от plr_iWeaponSet аттачилась нужная модель. Переменную из pShell можно взять с помощью метода _pShell->GetINDEX("plr_iWeaponSet");
По идее теперь после загрузки уровня у игрока в руках будет нужное оружие. Также нужно сделать это в PlayerAnimator и Item-классах.
3) Опционально, во время игры: Если iWeaponSet и iLastWeaponSet отличаются, тогда нужно будет убрать аттачменты из рук игрока и вызывать метод SetCurrentWeaponModel снова. По сути очень похоже на механизм со сменой текстуры прицела у игрока.
Как менять Item классы во время игры пока идей нет, но думаю для начала ответ сойдет Также надо быть осторожным с сетевой игрой, стоит проверить все это на рассинхроны. Если будут, то можно какие-то блоки кода выполнять через
if (_pNetwork->IsPlayerLocal(this)) { // ... }
Сообщение отредактировалHeming_Hitrowski - Понедельник, 27.11.2023, 14:30
Решил вот засесть за изучение СДК на классического Сэма (совместно с изучением плюсов) и на моменте настройки программы уже столкнулся сразу со странной ошибкой. Когда пытаюсь открыть что-либо (изображение снизу)
Программа вылетает
Но я хотел узнать в первую очередь другое. Я вот сижу пока что на 7-ке. И думаю, может мне Вижуал студио на виртуалке запустить лучше? Или всё-таки за семёркой можно на нём работать? Если да, то подскажите пожалуйста как пофиксить эту ошибку. Также, хотелось бы попросить у вас, друзья, если не сложно, скинуть полезные ссылки на несколько гайдов или видео-уроков по плюсам подходящих под работу с СДК Семёна, или отдельно от Сэма вообще мб даже книгу если можете посоветуйте какую-нибудь, мало-ли. Т.к. сам то я программированием почти не занимался, а для проектов то своих хотелось бы данные навыки возыметь.
Сообщение отредактировалJustRick - Среда, 13.12.2023, 09:07
JustRick, по поводу программы: она рабочая даже на Windows 10, но её установка становится сложнее с новыми версиями. Могу только посоветовать заново её переустановить, следуя этим шагам:
1. В главном окне оставить включенным Microsoft Visual C++ 6.0, а всё остальное выключить. 2. Далее зайти под эту опцию (нажать на "Change Option...") и всё включить. 3. Далее зайти под VC++ MFC and Template Libraries, затем MS Foundation Class Libraries и включить эти настройки:
Static Libraries for Unicode
Shared Libraries for Unicode
4. В этом же месте выключить:
Browser Database
5. Вернись назад дважды, зайди под VC++ Runtime Libraries и выключи:
CRT Source Code
6. Далее согласиться на "Register environment variables" в следующем окне и продолжить. 7. Если появится окно с предложением "overwrite JIT Settings", нажми "No". 8. После успешной установки (а не какой-либо ошибки или зависания установщика) следует установить Service Pack 6, скачиваемый отдельно.
Сообщение отредактировалST27 - Вторник, 12.12.2023, 22:13