| Автор | Сообщение |
Void Weaver = Captain =
 | | 2496 |
 Doom Rate: 1.82 Posts quality: +808 |
Отправлено: 26.08.19 02:32:30 | |
|
| Liaslia пишет: | | Что хотелось бы? Вырезать этот зум вместе с прицелом так,чтобы было возможно использовать его отдельно и с любым оружием,назначив активацию на произвольную кнопку ( не альтернативной атаки) Пробовал по разному- не хочет работать.Кто нибудь может помочь?Буду вам благодарен. | А в чём проблема-то? Открой вад, скопируй код и всех делов.
И если уже пробовал то почему не выложил код ружжа? |
|
|
| 1 |
9 |
1 |
 |
|
| |
Romeo7662 Recruit
 | | 6 |
Doom Rate: 2 Posts quality: +3 |
Отправлено: 26.08.19 13:29:19 | |
|
| Доброго времени суток, прошу прощение если подобный вопрос задавали ранние, предоставляется ли возможным сделать модификацию для дума превращающую игру в МОБА? А главный вопрос как заставить монстров идти по отведённому пути и сражаться друг с другом? Возможно ли это технически? |
|
|
| |
Mostcus - UAC Commissar -
 Doom Rate: 2.47 Posts quality: +1467 |
Отправлено: 26.08.19 13:48:19 | |
|
| Romeo7662 пишет: | | Возможно ли это технически? |
Мне кажется, что если у тебя возникают настолько простые вопросы на уровне проектирования, то и от уровня реализации ничего хорошего ждать не стоит. |
|
|
| 1 |
2 |
1 |
 |
|
| |
Romeo7662 Recruit
 | | 6 |
Doom Rate: 2 Posts quality: +3 |
Отправлено: 26.08.19 13:52:41 | |
|
| Mostcus пишет: | | Мне кажется, что если у тебя возникают настолько простые вопросы на уровне проектирования, то и от уровня реализации ничего хорошего ждать не стоит. | Лол, название темы прочитай пожалуйста внимательно. Это пустое сообщение не дающие ответ на мой вопрос. |
|
|
| |
Void Weaver = Captain =
 | | 2496 |
 Doom Rate: 1.82 Posts quality: +808 |
Отправлено: 26.08.19 14:18:19 | |
|
| Romeo7662 пишет: | | предоставляется ли возможным сделать модификацию для дума превращающую игру в МОБА? | Да.
| Romeo7662 пишет: | | А главный вопрос как заставить монстров идти по отведённому пути и сражаться друг с другом? | Это два разных вопроса и далеко не самых важных.
1. Тащить монстров по заданному маршруту можно через маппинг-скриптовую конфигурацию PatrolPoint + Thing_SetGoal Подробнее здесь и по ссылкам оттуда.
2. По умолчанию монстры разных типов и так могут участвовать в инфайтинге, так что тебе стоит обрисовать задачу более конкретно. |
|
|
| 1 |
9 |
1 |
 |
|
| |
FoxPlays = Sergeant Major =
 | | 644 |
 Doom Rate: 2.14 Posts quality: +371 |
Отправлено: 26.08.19 14:24:17 | |
|
| Romeo7662 пишет: | | предоставляется ли возможным сделать модификацию для дума превращающую игру в МОБА? |
Конечно, могу привести пример такой как - вад показанный на одном ютуб видео Помню вроде было больше информации про такой вад.
Можешь посмотреть, что находится внутри этого вада, его возможно скачать на форуме здума.
Работает это так - каждый монстр это новый PlayerClass, в пример игрока импа:
То-есть каждый монстр-игрок это просто тот-же игрок, но со своими параметрами, атаками и спрайтами, про это можно прочитать на здум вики 
Только сейчас заметил что написано не - "превратить игрока в моба", а "превратить игру в мобу"
| | как заставить монстров идти по отведённому пути |
При помощи Patrol Point актора. Проведи этими акторами дорогу до куда пойдёт монстр и внутри их (в параметрах, в редакторе карт) проставить всем нужные им параметры. Чтобы монстр пошёл по сделанной дороге, нужно это уложить в ACS скрипт. Примерно так:
| script "название скрипта" (void)
{
Thing_Activate(тид монстра);
Thing_SetGoal(тид монстра,финальная точка дороги для монстра,0,1);
} |
Не помню, обязателен ли Thing_Activate, но можешь ещё попробовать без него
Thing_SetGoal - говорит монстру, что ему нужно идти по дороге
Чтобы этот скрипт работал - нужно его вызвать, если нужно чтобы он активировался после прохождения определённого лайндефа на карте, то установи лайндефу экшн с названием - Script Execute. Лайндефу установи нужные экшну параметры и галочку на When Player walks over (всё расписано внутри редактора карт, что делает каждый параметр).
После этого всё должно работать
| | и сражаться друг с другом? |
Да, тоже можно, при помощи - Thing_Hate (им устанавливается цель для убийства монстру) |
|
|
| |
Romeo7662 Recruit
 | | 6 |
Doom Rate: 2 Posts quality: +3 |
Отправлено: 26.08.19 14:25:16 | |
|
Void Weaver
Благодарю, тогда как заставить сражаться монстров одного типа? И какие главные трудности по вашему мнению могут возник при реализации подобного мода?
Добавлено спустя 1 минуту 36 секунд:
FoxPlays
Спасибо) |
Рейтинг сообщения: +1, отметил(и): FoxPlays |
|
| |
Void Weaver = Captain =
 | | 2496 |
 Doom Rate: 1.82 Posts quality: +808 |
Отправлено: 26.08.19 14:37:11 | |
|
Способов масса: скриптом по Thing_Hate, на декоре через A_CheckProximity, или на декоре же по применению снарядов с +HITTARGET.
----
Сам выбор сего жанра как такового это одна сплошная трудность от и до. |
|
|
| 1 |
9 |
1 |
 |
|
| |
N00b Chief Petty Officer
 | | 922 |
Doom Rate: 2.15 Posts quality: +384 |
Отправлено: 26.08.19 14:46:12 | |
|
Liaslia
Void Weaver
Если я правильно понял, товарищ Liaslia требует сделать примерно такую же активацию, как бросок гранаты в брутале, а не просто добавить стейты конкретному оружию (например, снайперке). Я попробовал накодить сырую версию.
Вот это нужно поместить в wad в ламп ZSCRIPT или в pk3 в файл zscript.txt, при этом выдрать в этот же архив спрайты ZOOMA0 и ZOOMB0 из этого вашего "DUMP-3-weapons.pk3":
Для теста набрать в консоли "give requestedscope". Использует стандартный бинд кнопки zoom (если честно, не вспомню ни одного серьёзного мода (Complex Doom разве что?), где биндился бы Zoom, а не Altfire). Увеличение плавное от 1.0 до 12.0, при этом экспоненциальное, а не линейное, как в моде. Оружие запоминает уровень зума.
Текущие проблемы:
1. Из бензопилы и кулака также можно прицеливаться (исправляется легко проверками класса оружия).
2. При прицеливании не убирается спрайт пушки (возился с этими psprite-ами, возился, костыли городил --- не получилось, может, другой кто подсобит).
3. Поведение не совсем такое, как в моде (там красный прицел, когда винтовка перезаряжается, а у меня --- когда нажата кнопка выстрела; это косметический эффект, его можно при желании исправить проверкой стейта пушки).
4. Спрайты некрасивые, и их неплохо было бы подвинуть вниз.
Наиболее важная --- вторая.
Romeo7662
Пока писал пост, другие ответили. Ничего нового не прибавлю. Удачи!
---
Покойся с миром, старая тема. Да будет HDD на сервере тебе пухом. |
|
|
| |
Void Weaver = Captain =
 | | 2496 |
 Doom Rate: 1.82 Posts quality: +808 |
Отправлено: 26.08.19 14:57:39 | |
|
Гуд.
Я кстати недавно выкладывал тут аналогичную целиковую снайперку но на декоре. Правда там через пару постов прикручена возможность вызова оверлэя удара с ноги, а не самой снайперки как таковой.
ВТФ из psprite? Это какой-то зскриптовый термин? Я всё чаще и чаще вижу упоминание сабжа. |
|
|
| 1 |
9 |
1 |
 |
|
| |
Liaslia Marine
 | | 26 |
 Doom Rate: 2
|
Отправлено: 26.08.19 20:59:20 | |
|
Void Weaver
N00b2015
Приветствую,уважаемые!Спасибо за ответы.
Дело в том,что само ружьё мне не нужно.А нужна именно оптика от него. Для использования зума с любым оружием.Можно конечно использовать обычный алиас зума.Но хотелось бы сделать красиво.А знаний по написанию кода увы,маловато.
N00b2015 Вы верно поняли.( только не "требую" а прошу,кто я нафиг такой чтобы требовать то?))))
Спасибо за труд.Всё сделал,как сказали,но вот что получилось.
Добавлено спустя 12 минут 20 секунд:
Вообще идея то в чём?Когда играешь в Думец на мобильном устройстве, дисплей явно маловат.И попасть в какого-нибудь импа или ревенанта засевшего чёрт знает где,уже нелегко.Не во всех модах есть оружие с оптикой,да и часто находишь его под конец прохождения,когда уже не особо и нужно оно.Хотел сделать именно оптику.Скажем,вроде монокуляра.А та пушка из Dump привлекла интересной реализацией зума. |
|
|
| |
N00b Chief Petty Officer
 | | 922 |
Doom Rate: 2.15 Posts quality: +384 |
Отправлено: 27.08.19 17:18:53 | |
|
Liaslia
УМВР на gz3.8.2_legacy. Может, что-то не так пошло. Вот готовый архив, я там спрайты поменял (на поле советского бинокля вместо прицела крестом), костылём заставил спрайты убираться и назначил выдачу этого предмета с помощью ACS при заходе игрока. Теперь всё должно работать.
Это штука, которая будет работать с любым оружием (если запустится )
Бинд Zoom я выбрал руководствуясь тем, что он почти нигде не используется. Если это неудобно, замени в 65 строчке BT_ZOOM на нужную клавишу, напр. BT_USER1 (см. таблицу в разделе статьи про GetPlayerInput для списка биндов по умолчанию, а если они все использованы, скажи, и я могу написать keyconf).
Ах да, максимальное увеличение 12.0 в строчке №69 тоже можно менять (там два вхождения!), но только до 50.0, как с помощью A_ZoomFactor (видимо, где-то в коде ещё ограничение стоит).
Void Weaver
Вот что-то об этом говорят. Граф пишет, что PSprite есть один слой изображения оружия на HUD.
---
Edit. Пофиксил малость (первая версия не работала с некоторыми модами, меняющими класс игрока), заменил zoom на user1, заменил увеличение на 20.0. |
|
|
| |
Liaslia Marine
 | | 26 |
 Doom Rate: 2
|
Отправлено: 27.08.19 22:35:27 | |
|
N00b2015
Спасибо вам и извините уж за хлопоты,однако,увы...Ни первый ни второй вариант не заработали.Division by zero.
Вот. Насчёт назначения кнопок,хотя не в этом загвоздка,конечно,может просто прописать дополнительное значение в кейконфиг? Проще,наверное.И забиндить можно любую кнопку.
Добавлено спустя 2 минуты 18 секунд:
Скрин второй. |
|
|
| |
N00b Chief Petty Officer
 | | 922 |
Doom Rate: 2.15 Posts quality: +384 |
Отправлено: 28.08.19 09:49:25 | |
|
Liaslia
Так пока не за что "спасибо" говорить, раз не работает!
Попробуй вот так. Понял, где /0. Очень странно, что на той же версии у меня (правда, я на компе, а ещё gzdoom чистый) эта ошибка не вылезала. Наверное, дело в настройках.
| Liaslia пишет: | | прописать дополнительное значение в кейконфиг |
Это было бы проще, если бы у меня какой-то ACS-ный скрипт вызывался по этой кнопке. У меня сделано по-другому. Если тебе неудобно биндить user1, я могу попробовать это переписать.
Edit. Новая версия (фиксы совместимости, user3). |
|
|
| |
Liaslia Marine
 | | 26 |
 Doom Rate: 2
|
Отправлено: 28.08.19 10:49:40 | |
|
N00b2015
Благодарность в первую очередь за внимание и желание помочь.Оно сейчас редкость так то...Но теперь уже и за результат не грех сказать спасибо!) С оригинальным Doom 2 всё отменно заработало! А вот при попытке запустить с модами в консоли сообщение о неизвестном типе
айтема. По поводу запуска,наверно всё же есть отличия гоззы в Delta Touch и чистой на ПК.Встречал пару модов которые не желали работать в Дельте,но на компе у людей работали нормально. По назначению кнопок, User1 используется в одном моде.Если нетрудно,поменяй на User3.
Добавлено спустя 4 часа 56 минут 33 секунды:
N00b2015
Супер!Громадное спасибо и низкий поклон,Мастер!  |
|
|
| |
Doomgay1999 - Corporal -
 | | 96 |
Doom Rate: 2 Posts quality: +1 |
Отправлено: 28.08.19 21:28:22 | |
|
| А я могу как-то вытащить из Sega Saturn уровни? Мне просто интересно. |
|
|
| |
Void Weaver = Captain =
 | | 2496 |
 Doom Rate: 1.82 Posts quality: +808 |
Отправлено: 29.08.19 00:39:52 | |
|
| Doomgay1999 пишет: | | А я могу как-то вытащить из Sega Saturn уровни? Мне просто интересно. | Да. Каждая мапа хранится в отдельном ваде в директории | | All the maps are stored in the /MAPDIRXXX directory with the IWAD header included. | В самом JIMSDOOM.WAD, содержатся ресурсы и часть графики типа тайтлов, спрайтов кнопок и др. Детали по остальным ресурсам вада здесь. |
|
|
| 1 |
9 |
1 |
 |
|
| |
Doomgay1999 - Corporal -
 | | 96 |
Doom Rate: 2 Posts quality: +1 |
Отправлено: 29.08.19 02:55:00 | |
|
Void Weaver
Где мне скачать Jimsdoom.wad? |
|
|
| |
Void Weaver = Captain =
 | | 2496 |
 Doom Rate: 1.82 Posts quality: +808 |
Отправлено: 29.08.19 04:45:23 | |
|
Очевидно там же где ты собирался брать Sega Saturn. Например можно с нашего сайта.
Добавлено спустя 1 день 19 часов 14 минут 8 секунд:
Актору без тида нужно получить Radius его TRACER'а. Написал следующий скрипт:Script "GetTracerRadius" (void)
{
Thing_ChangeTID(0,UniqueTID());
Delay(1);
SetActivator(ActivatorTID(),AAPTR_TRACER);
SetResultValue(GetActorProperty(0,APROP_Radius));
}Он работает, но имеется делэй, ибо без него текущий код вешает игру. Вопрос: можно ли как-то оптимизировать код, в частности избавиться от делэя?
Решено:Script "GetTracerRadius" (void)
{
Thing_ChangeTID(0,UniqueTID());
SetActivator(ActivatorTID(),AAPTR_TRACER);
SetResultValue(GetActorProperty(0,APROP_Radius)>>16);
} |
|
|
| 1 |
9 |
1 |
 |
|
| |
MelaDoZer Recruit
 | | 14 |
Doom Rate: 2 Posts quality: +13 |
Отправлено: 05.09.19 21:36:11 | |
|
Всем здравствуйте! Долго был в рид-онли, но наконец-то решился зарегистрироваться.
Совсем недавно появилось несколько по ZScript'у. Я вообще с этим делом слабо дружу, но пытаюсь разобраться. Помогите, пожалуйста!
1. У меня есть следующий код, задача которого заключается в добавлении актёров на уровень. Однако, мне нужно и удалить одного монстра, прям как Thing_Remove в ACS, но по индексу, а не по Thing ID. Например, вот этого 101 шотган-гая. Мне кажется что это совсем простая задача, но добраться до решения всё не выходит. Не понимаю, как обратиться именно к этому актёру, такие дела.
2. Может, возможно заменить одного конкретного актёра на другого, как в первом вопросе? Того же сержанта с индексом 101 на импа, например.
3. Самый, наверное, специфический вопрос. Возможно ли ZScript'ом менять геометрию уровня до той же его загрузки, например? Не на уровне ACS'а, конечно, нужна возможность добавлять вертексы, рисовать новые сектора. Я сам подозреваю, что нет, но надежда у меня все ещё есть, так как на вики сказано о "Map data access (and partial control)".
Я не могу редактировать сами карты (и они в стандартном Думовском формате, не написал раньше), поэтому пытаюсь всё сделать скриптами, да и весь остальной код у меня написан ZScript'ом. |
|
|
| |
YURA_111 UAC Sergeant Major
 | | 768 |
 Doom Rate: 1.98 Posts quality: +137 |
Отправлено: 06.09.19 22:36:02 | |
|
| MelaDoZer пишет: | | Может, возможно заменить одного конкретного актёра на другого, как в первом вопросе? Того же сержанта с индексом 101 на импа, например. |
Может RandomSpawner? ( https://zdoom.org/wiki/Classes:RandomSpawner )
Правда в этом случае заменяются все монстры этого класса на уровне и в игре. |
|
|
| |
MelaDoZer Recruit
 | | 14 |
Doom Rate: 2 Posts quality: +13 |
Отправлено: 07.09.19 03:41:37 | |
|
Увы, не могу как раз так сделать, не такая цель Но спасибо!
Просто пытаюсь, как в пример, заменить одного конкретного сержанта на E1M1 (индекс 90) на пулемётчика, как было в Playstation Doom на сложности Ultra-Violence. Заспаунить монстра легко, как и повернуть его и присвоить флаги, а вот как удалять определённый thing c карты ZScript'ом мне пока непонятно По идее, если бы я знал как удалить монстра, то я бы смог написать функцию для эдакой замены (и получился бы ответ на мой второй вопрос, хех).
В ACS лезть не хочется, а то придётся как-то код разрывать. Есть у меня ACS-библиотека, которая на OPEN удаляет thing'и с тегами, но я вообще хотел про неё забыть и не использовать больше Должен быть какой-то способ... |
|
|
| |
ZZYZX - UAC Commissar -
 |  | | 6284 |
 Doom Rate: 1.65 Posts quality: +1633 |
Отправлено: 07.09.19 03:52:39 | |
|
Destroy() от объекта, чтобы удалить.
Только я не уверен, как найти актора именно по индексу из карты, а не по тэгу. И сохраняется ли эта информация вообще при загрузке. Известно что именно для акторов дум херит довольно много информации, в том числе UDMF-свойства от акторов, например (именно поэтому нельзя получить "comment" у актора, даже если он был — "не реализовано"). Индекс, вероятно, не сохраняется тоже, во всяком случае я его не нашёл.
Есть код в LevelCompatibility, но этот код вызывается не в любое время, а между загрузками карты. И да, там есть доступ к индексу тхинга. Только нормальному человеку это использовать невозможно никак, это встроенный файл в гздуме.
Предлагаю искать монстра по X/Y и типу. |
|
|
| 2 |
2 |
1 |
 |
|
| |
MelaDoZer Recruit
 | | 14 |
Doom Rate: 2 Posts quality: +13 |
Отправлено: 07.09.19 06:05:20 | |
|
| ZZYZX пишет: | олько я не уверен, как найти актора именно по индексу из карты, а не по тэгу. И сохраняется ли эта информация вообще при загрузке. Известно что именно для акторов дум херит довольно много информации, в том числе UDMF-свойства от акторов, например (именно поэтому нельзя получить "comment" у актора, даже если он был — "не реализовано"). Индекс, вероятно, не сохраняется тоже, во всяком случае я его не нашёл.
Есть код в LevelCompatibility, но этот код вызывается не в любое время, а между загрузками карты. И да, там есть доступ к индексу тхинга. Только нормальному человеку это использовать невозможно никак, это встроенный файл в гздуме. |
Да, я как-то давно читал, что LevelCompatibility недоступен для наследования (вроде так, поправьте если что, я могу неправильно термины применять ).
Однако, у меня получилось. Вычитал на форуме ZDoom'а, что его можно юзать. Я не заметил как это изменили в GZDoom, выходит. Вот пример (да и вдруг кому нужно будет):
Это убирает Bloody mess 1 напротив старта. Как на скрине:
Однако, теперь какие-то проблемы со спауном монстров в этом коде и GZDoom просто крашится, по ошибкам пусто (просто уровень загружается, да и всё). Ну это не так уж и страшно, с этим можно ещё разобраться (думаю это из-за самой функции Apply, тут уж придётся поделить).
Спасибо большое, я бы даже не копал в направлении LevelCompatibility, если бы не напомнили Думал, что нужно ждать обновления гоззы.
Впрочем, надо ещё разобраться с архитектурой, насколько её можно изменять  |
|
|
| |
Толик Recruit
 | | 18 |
Doom Rate: 1.64 Posts quality: +9 |
Отправлено: 09.09.19 22:13:39 | |
|
| ZZYZX пишет: | | Известно что именно для акторов дум херит довольно много информации, в том числе UDMF-свойства от акторов, например (именно поэтому нельзя получить "comment" у актора, даже если он был — "не реализовано"). Индекс, вероятно, не сохраняется тоже, во всяком случае я его не нашёл. |
Откуда инфа?
| MelaDoZer пишет: | | Вычитал на форуме ZDoom'а, что его можно юзать |
Можно чексумму получить и просто так с помощью levellocals.getchecksum() и потом в worldloded/worldthingspawned/etc ивенте поменять монстра если его координаты, тип и чексума карты совпадают с заданными. |
|
|
| |
Void Weaver = Captain =
 | | 2496 |
 Doom Rate: 1.82 Posts quality: +808 |
Отправлено: 10.09.19 07:25:36 | |
|
Имеется актор с набором спрайтов
СПРТ АБВГДЕ 1
и этим спрайтам в редакторе выставлен определённый оффсет (как для монстра).
Также имеется другой актор с тем же набором спрайтов
СПРТ АБВГДЕ 1
но для этого актора нужен совершенно иной оффсет (как для снаряда).
Вопрос: можно ли в пределах одного вада иметь одинаковый набор спрайтов с разными оффсетами, и если да то как это сделать?
Конечно можно тупо переименовать второй набор спрайтов, но их довольно много + будет дубликат ресурсов, и поэтому такой вариант только если не найдётся других решений. |
|
|
| 1 |
9 |
1 |
 |
|
| |
Герр Смертоносец = Warrant Officer =
 | | 1163 |
 Doom Rate: 1.34 Posts quality: +1036 |
Отправлено: 10.09.19 16:18:07 | |
|
| Void Weaver пишет: | | Вопрос: можно ли в пределах одного вада иметь одинаковый набор спрайтов с разными оффсетами, и если да то как это сделать? |
Нормальный принудительный оффсет "СПРТ А 1 Offset(x, y)" работает только для HUD-пушек. С какого лешего эту фичу не стали распространять на все спрайты - сие тайна великая есть.
Теоретически единственный обходной путь (и только по вертикали) - шаманить с A_SetFloatBobPhase, благо что амплитуду можно задать произвольно. Второй обходной путь - это делать актора невидимым и спавнить самоварпящихся призраков с NOINTERACTION-флагов, но это уже совсем троллейбус из хлеба.
Что характерно - а вот для моделей такой путь есть! Ибо всё прописывается в MODELDEF, и можно на одну модель запилить сколько угодно комбинацией. Впрочем, я много раз говорил, что Z-порты являются одной большой насмешкой над универсальностью.  |
|
|
| 5 |
 |
|
| |
ZZYZX - UAC Commissar -
 |  | | 6284 |
 Doom Rate: 1.65 Posts quality: +1633 |
Отправлено: 10.09.19 17:11:05 | |
|
Толик
Из исходников гздума, очевидно, не сам придумал |
|
|
| 2 |
2 |
1 |
 |
|
| |
Void Weaver = Captain =
 | | 2496 |
 Doom Rate: 1.82 Posts quality: +808 |
Отправлено: 10.09.19 17:48:46 | |
|
| Герр Смертоносец пишет: | | Нормальный принудительный оффсет "СПРТ А 1 Offset(x, y)" работает только для HUD-пушек. С какого лешего эту фичу не стали распространять на все спрайты - сие тайна великая есть. | Мне куда более "доставило" что помимо кейворда есть ещё и A_WeaponOffset и A_OverlayOffset, которые разумеется не пашут на акторах кроме волын и кинвентори.
| Герр Смертоносец пишет: | | Второй обходной путь - это делать актора невидимым и спавнить самоварпящихся призраков с NOINTERACTION-флагов, но это уже совсем троллейбус из хлеба. | Ну ты, блин, кулибин! В общем-то мне как раз и нужно смещение по вертикали, пожалуй закинусь хлебцем.
EDIT:
Работает идеально!  |
|
|
| 1 |
9 |
1 |
 |
|
| |
Толик Recruit
 | | 18 |
Doom Rate: 1.64 Posts quality: +9 |
Отправлено: 10.09.19 22:24:59 | |
|
| ZZYZX пишет: | | Из исходников гздума |
Ссылочку.
Неужели граф парсер для удмфа написать не в состоянии? |
|
|
| |
ZZYZX - UAC Commissar -
 |  | | 6284 |
 Doom Rate: 1.65 Posts quality: +1633 |
|
| 2 |
2 |
1 |
 |
|
| |
Толик Recruit
 | | 18 |
Doom Rate: 1.64 Posts quality: +9 |
Отправлено: 11.09.19 21:25:04 | |
|
Мне было просто интересно глянуть на реализацию.
И да, это действительно наследие ренди. Граф его не трогает потому что работает. |
|
|
| |
Void Weaver = Captain =
 | | 2496 |
 Doom Rate: 1.82 Posts quality: +808 |
Отправлено: 11.09.19 22:35:13 | |
|
Можно ли задать спрайту такое вращение?
 |
|
|
| 1 |
9 |
1 |
 |
|
| |
ZZYZX - UAC Commissar -
 |  | | 6284 |
 Doom Rate: 1.65 Posts quality: +1633 |
Отправлено: 12.09.19 00:28:10 | |
|
| Можно, но придётся добавлять +WALLSPRITE / +FLATSPRITE / +FLOORSPRITE (или как там их) и вертеть спрайт руками в любую сторону ) |
|
|
| 2 |
2 |
1 |
 |
|
| |
Void Weaver = Captain =
 | | 2496 |
 Doom Rate: 1.82 Posts quality: +808 |
Отправлено: 12.09.19 08:38:25 | |
|
WALLSPRITE и FLATSPRITE не совместимы друг с другом, а насчёт "вертеть руками" хотелось бы подробней. Потому что на зфоруме один чел посоветовал что-то не менее расплывчатое:
Если что то речь идёт о кастомных спрайтах снаряда, которые я хотел бы заставить вращаться в полёте в стиле KnightAxe еретиковских Кнайтов.
Мб. как-то через SpriteAngle?
---
1. Как записать чтобы что-то происходило только когда некая переменная кратна 10? Так: If(user_var%10==0)?
2. Как записать 256-маску шанса по проценту от текущих хп?
Т. е. нужно что-то типа A_JumpIf([если Health=100% то шанс 0, если Health=50% то 128, если Health=1% то 256],"state") |
|
|
| 1 |
9 |
1 |
 |
|
| |
JSO x - 2nd Lieutenant -
 | | 1404 |
 Doom Rate: 2.27 Posts quality: +789 |
Отправлено: 12.09.19 09:27:29 | |
|
1) Да, так. И на "user_var == 0" действие тоже будет выполняться.
2) На Decorate -- "A_JumpIf( 256 - health / GetSpawnHealth() * 256, "state" )". На ZScript -- то же самое, но лучше с использованием переменной "StartHealth". |
|
|
| 2 |
8 |
1 |
 |
|
| |
Void Weaver = Captain =
 | | 2496 |
 Doom Rate: 1.82 Posts quality: +808 |
Отправлено: 12.09.19 10:33:52 | |
|
2) То что надо! Я правильно понимаю что прямая пропорция будет "A_Jump( health / GetSpawnHealth() * 256, "state" )",
а отсчёт с половины хп будет "A_Jump(256 - health / GetSpawnHealth()/2 * 256, "state" )" или "-256" просчитается не корректно и для маски с 50% надо писать предварительное условие типа:
If(Health<GetSpawnHealth/2)
{
Return A_Jump(256-Health/GetSpawnHealth/2*256,"state");
}
Else
{
Return state("");
} |
|
|
| 1 |
9 |
1 |
 |
|
| |
ZZYZX - UAC Commissar -
 |  | | 6284 |
 Doom Rate: 1.65 Posts quality: +1633 |
Отправлено: 12.09.19 14:39:02 | |
|
| Void Weaver пишет: | | WALLSPRITE и FLATSPRITE не совместимы друг с другом, а насчёт "вертеть руками" хотелось бы подробней. Потому что на зфоруме один чел посоветовал что-то не менее расплывчатое: |
Тебе посоветовали пытаться добиться эффекта вращения спрайта вокруг своей оси используя X/YScale
А вообще какая картинка, такой и ответ. Я нифига не понял в какую сторону последний кадр должен крутиться. |
|
|
| 2 |
2 |
1 |
 |
|
| |
VladGuardian - UAC Commissar -
 | | 6023 |
 Doom Rate: 1.33 Posts quality: +2227 |
Отправлено: 12.09.19 14:52:05 | |
|
| Void Weaver пишет: | | Можно ли задать спрайту такое вращение? |
Опыт трёхмерных афинных преобразований говорит нам, что вращение объекта вокруг произвольного вектора (ex,ey,ez),
представимо в виде комбинации двух вращений вокруг осей OX + OY (или вокруг OX + OZ, неважно)
В приложении к этим вашим декорейтам / зскриптам - не знаю, так как я несколько отстал от жизни.
Немного оффтоп:
Когда-то давно (около 15-20 лет назад) я для себя написал функцию вращения точки вокруг оси (Q1, Q2) на угол angle.
Она реально работает, хотя скорее всего, с точки зрения скорости выполнения она не столь эффективна, как прямые преобразования матрицы движения...
|
Рейтинг сообщения: +1, отметил(и): Mostcus |
|
| 4 |
17 |
23 |
 |
|
| |
Void Weaver = Captain =
 | | 2496 |
 Doom Rate: 1.82 Posts quality: +808 |
Отправлено: 12.09.19 15:10:52 | |
|
| ZZYZX пишет: | Тебе посоветовали пытаться добиться эффекта вращения спрайта вокруг своей оси используя X/YScale  | Ну я приблизительно так и понял, но абсолютно не понимаю как это реализовать, поскольку столь же не въезжаю как это должно помочь.
| ZZYZX пишет: | | А вообще какая картинка, такой и ответ. Я нифига не понял в какую сторону последний кадр должен крутиться. | Ну как сумел, хотя дорисовка третьей оси могла бы наверное сделать пикчу более информативной.
Попробую "на пальцах".
Представь спрайт монстра (но в моём случае снаряда), например импа, обращённого к игроку "лицом". Ну а теперь надо придать такое вращение чтобы поворот совершался в центре спрайта (пузе), так чтобы в следующем кадре "ноги" импа оторвались от земли а "голова" наоборот наклонилась к земле в сторону зрителя.
И ещё один.
Помните старый советский настольный футбол с футболистами на осях? Ну вот такое вращение мне и нужно. В нормальной геометрии это вроде как вращение вокруг Х?
VladGuardian
Еяпп, то проблема как раз в том что гозза (по крайней мере декор) тупо не предоставляет возможности вращения по второй оси. Либо я об этом не в курсе, что и пытаюсь выяснить. |
|
|
| 1 |
9 |
1 |
 |
|
| |