Автор | Сообщение |
Fuckin_Die - Master Corporal -
 | 202 |
 Doom Rate: 1.09
|
Отправлено: 26.01.15 21:52:57 | | | Люди! Думеры!
Помогите тупому ничего не знающему думеру! Я хочу создать свой вад, но я не знаю как делать двери, лифты, переключатели! Кто кинет ссылку на какой-нибудь мануал по Doom Builder? Буду очень благодарен! | |
|
| |
alekv = 2nd Lieutenant =
 | 1456 |
 Doom Rate: 1.68
|
Отправлено: 26.01.15 23:58:54 | | | Попытаюсь объяснить проблемку как можно подробнее посоветуйте что-то по этому поводу:
script 124 ENTER
{
while (TRUE)
{
Print (d:GetActorVelZ(0) >> 16);
Delay (1);
}
}
Скопипастив этот скрипт в любую карту, он будет показывать изменения VelZ игрока.
Когда персонаж прыгает или падает с чего либо, его VelZ изменяется и в консоль записывает так(Что бы было удобнее приписал в скрипте >>16):
0 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 0 1 2 3 4 5 6 7 8 9 0
Где -10 игрок начал движение вверх, тоесть прыжок, 9 максимальная высота которой он достиг. Первый и последний 0 это персонаж стоит на полу. Проблема в двух 0 по середине..
Мне надо что бы VelZ делал так: 0 1 2 3 4 5 6 7 8 9 0
Где 0 это игрок на полу, 1 старт прыжка, 9 мак. высота прыжка.
Наверное не понятно объяснил..
Мне надо что бы velZ начинала отсчет без -значения.
Для чего мне примерно надо :
If ( GetActorVelZ(0) == 0) //Если игрок стоит на полу
{
GiveInventory("xxx",x); //Дает это
Restart;
}
Проблема в том что 0 == когда игрок стоит на полу, и когда находится на середине прыжка, поэтому скрипт будет давать итем когда игрок стоит на полу и когда находится на середине прыжка из-за странного отсчета. Что можно с этим сделать или использовать какой-то другой способ?(GetActorZ и GetActorFoorZ не подходят вообще)
Думал заменить обычный прыжок функцией ThrustThingZ, но там другие непонятки вылезут, надеюсь что-то можно сделать с VelZ
Добавлено спустя 44 минуты 7 секунд:
Fuckin_Die
Тут почитай.
Видео уроки думаю пригодятся.
Вообще тебе бы определится с выбором порта под который планируешь делать моды и какие возможности тебе нужны от порта(Графика, скриптинг, оригинал и т.д.), но для начала и оригинал сгодится  | |
|
| |
c4tnt = 1st Lieutenant =
 | 1879 |
 Doom Rate: 1.92
|
Отправлено: 27.01.15 06:28:53 | | | Ну отсчёт то на самом деле вполне нормальный, по крайней мере с физикой согласуется. А если просто нужно включить какой-то эффект в начале прыжка и выключить при приземлении, то было бы логично стартовать его по кнопке Jump, а отключать когда актор приземлится на пол (ActorHeigth = 0 или типа того, функция такая точно была). Если нужно на самом деле довить монстров, как в марио, то есть смысл включать довление при положительной скорости и отключать во всех остальных случаях. Точнее само давление можно не отключать, но вычислять урон от него по принципу min( max( 0, GetActorVelZ() ) * 0.125, макс_дамаг ) | |
|
| |
alekv = 2nd Lieutenant =
 | 1456 |
 Doom Rate: 1.68
|
Отправлено: 27.01.15 17:15:18 | | | c4tnt : | Ну отсчёт то на самом деле вполне нормальный, по крайней мере с физикой согласуется. А если просто нужно включить какой-то эффект в начале прыжка и выключить при приземлении, то было бы логично стартовать его по кнопке Jump, а отключать когда актор приземлится на пол (ActorHeigth = 0 или типа того, функция такая точно была). |
В игре это мне надо что бы высчитать что игрок находится выше пола, но не более чем на 5-6 мапюнитов.
Тоесть игрок прыгнул, показывает стейт начало прыжка, когда игрок отпустил кнопку прыжка, player начинает падать вниз и показывается стейт конец прыжка(но player еще не на полу), когда он на полу включается стейт spawn или see.
Так вот мне надо что бы когда player начинает падать(показывает стейт конец прыжка), то этот стейт конец прыжка показывался только до того как VelZ игрока будет == 0. Если бы отсчет был такой :
0=(на полу) 1=(оторвался от пола) 2 3 4 5 6 7 8 9 10=(Достиг макс. высоты) 11=(Начал падать) 12 13 14 15=(Вот тут и перестает работать стейт конец прыжка) 16 17 18 19 0==(стоит на полу))
Как бы это симитировать или чем-то заменить... если что-то не придумать по этому поводу, то персонаж в игре когда спускается по ступеням из пола или из CustomBridge начинает скакать между стейтами конец прыжка и Spawn, очень не красиво выглядит.
У меня стейт прыжка еще включается когда VelZ актора != 0, это сделано для того что бы когда персонаж не прыгает, а падает с уступа или ящика показывался стейт прыжка, иначе он похож на падающее бревно.. Поэтому если бы был отсчет такой как описал выше можно было бы прописать так If(GetActorVelZ(0) == 15) ...
c4tnt : | Если нужно на самом деле довить монстров, как в марио, то есть смысл включать довление при положительной скорости и отключать во всех остальных случаях. Точнее само давление можно не отключать, но вычислять урон от него по принципу min( max( 0, GetActorVelZ() ) * 0.125, макс_дамаг ) |
Это уже сделано, правда с помощью Projectile, не стал особо заморачиваться  | |
|
| |
c4tnt = 1st Lieutenant =
 | 1879 |
 Doom Rate: 1.92
|
Отправлено: 27.01.15 19:55:55 | | |
Ну так оно никогда не будет, тут правильнее ActorZ в комбинации со скоростью использовать. Плюс если сразу упасть вниз с краю без прыжка - скорость же сразу отрицательной будет. Поэтому, на мой взгляд, идеально было бы начинать последовательность для прыжка не по скорости, а именно по нажатию кнопки прыжка (тогда без прыжка ничего и показано лишнего не будет). А уж заканчивать по скорости. Хотя в тех же платформерах вообще просто поступают:
если скорость по Z направлена вверх, то используют для игрока набор кадров "в прыжке вверх". Если скорость направлена вниз - "кадры падения". Если скорость по Z равна 0 то используются обычные кадры ходьбы.
Ступеньки в принципе можно проверять через GetActorZ, и если сильно низко для падения, то использовать обычные кадры. Можно совместить с проверкой скорости - тогда при низкой скорости вниз и малой высоте можно использовать обычные кадры ходьбы просто. А прожектайл в такой системе не очень удобно использовать, лучше сделать функцию, которая вычислит тип анимации и вернёт его в декорейт как значение. А там по этому значению уже выбирать. Ну или можно сделать функцию, похожую на A_Look - чтобы она актору меняла стейт на подходящий: "в прыжке", "в падении" или "на земле" | |
|
| |
SAM = Master Corporal =
 | 276 |
 Doom Rate: 1.78
|
Отправлено: 27.01.15 21:38:17 | | | всем привет! я столкнулся с мелкой проблемой по поводу block sound он не всегда блокирует звук точнее в некоторых местах блокирует а в некоторых нет, в чем проблема, как его правильно назначать?
вот к примеру зигзагообразный коридор из 3х секторов, стреляю в первом повороте монстры меня слышат а в следующем нет, получается первая линия разделяющая 2 следующих сектора не "глушит" звук, а вторая отделяющая последний уже "глушит"
p. s монстры стоят во 2м и 3м секторах за поворотом я стрелял в первом. | |
|
| |
alekv = 2nd Lieutenant =
 | 1456 |
 Doom Rate: 1.68
|
Отправлено: 27.01.15 22:15:41 | | | c4tnt : | Ну так оно никогда не будет, тут правильнее ActorZ в комбинации со скоростью использовать. Плюс если сразу упасть вниз с краю без прыжка - скорость же сразу отрицательной будет. Поэтому, на мой взгляд, идеально было бы начинать последовательность для прыжка не по скорости, а именно по нажатию кнопки прыжка (тогда без прыжка ничего и показано лишнего не будет). А уж заканчивать по скорости. Хотя в тех же платформерах вообще просто поступают:
если скорость по Z направлена вверх, то используют для игрока набор кадров "в прыжке вверх". Если скорость направлена вниз - "кадры падения". Если скорость по Z равна 0 то используются обычные кадры ходьбы. |
Вот идея со скоростью мне нравится, буду пробовать. Вообще у меня смена стейтов я бы сказал плохая.. многое основанно на GiveInventory иTake, а это не самый быстрый способ, жаль в acs нет CheckActorState(); его очень не хватает.
Вот в платформерах хорошо делается, а как в гоззе это делать.. я пробовал замутить прыжок таким способом, а именно If(GetActorVelZ(0) >= и тут какое бы я число не написал(кроме 0) почему-то не работало условие, и в целое число переводил, тоже ничего. Возможно из-за этого у меня и появляется куча вопросов т.к. ищю другие варианты.
c4tnt : | А прожектайл в такой системе не очень удобно использовать, лучше сделать функцию, которая вычислит тип анимации и вернёт его в декорейт как значение. А там по этому значению уже выбирать. Ну или можно сделать функцию, похожую на A_Look - чтобы она актору меняла стейт на подходящий: "в прыжке", "в падении" или "на земле" |
В целом способ с прожектайлом не плохо работает, плеер спавнит прожектайл(с небольшой высотой и радиусом == радиусу игрока) снизу и только в стейте начало прыжка и конец прыжка, а монстр спавнит прожектайл по кординатам 0,0,0 и высота в 2 раза ниже спрайта монстра, но радиус такой же. Довольно весело получается
Думал еще замутить по другому.. взять игрока посадить в маленький сектор, прикрепить камеру к монстру и управлять им.. примерно так в DoomDonkeyKong сделано и очень даже не плохо смотрится.  | |
|
| |
YURA_111 UAC Sergeant Major
 | 736 |
 Doom Rate: 2.17
|
Отправлено: 28.01.15 21:29:39 | | | SAM : | всем привет! я столкнулся с мелкой проблемой по поводу block sound он не всегда блокирует звук точнее в некоторых местах блокирует а в некоторых нет, в чем проблема, как его правильно назначать?
вот к примеру зигзагообразный коридор из 3х секторов, стреляю в первом повороте монстры меня слышат а в следующем нет, получается первая линия разделяющая 2 следующих сектора не "глушит" звук, а вторая отделяющая последний уже "глушит"
p. s монстры стоят во 2м и 3м секторах за поворотом я стрелял в первом. |
http://forums.newdoom.com/showthread.php?t=25481 | |
|
| |
SAM = Master Corporal =
 | 276 |
 Doom Rate: 1.78
|
Отправлено: 28.01.15 22:27:00 | | | YURA_111
спасибо! но я не могу понять перевожу и все равно не понимаю, какие то две последовательные линии, флаг "deaf" и прочее.....может есть вад с примером или более понятное объяснение этому? | |
|
| |
YURA_111 UAC Sergeant Major
 | 736 |
 Doom Rate: 2.17
|
Отправлено: 28.01.15 22:32:56 | | | На флаг "Deaf" не обращай внимания. Этот флаг прикручивается к монстрам. Тебе нужны именно Линии - две линии, которые должны иметь "Block Sound". Собственно смотри на схему - и комментарии в ней - там все предельно ясно... | |
|
| |
navy_seals = Lance Corporal =
 | 164 |
Doom Rate: 2
|
Отправлено: 30.01.15 18:21:24 | | | очень тупой вопрос - где-то слышал, что в ваде должно быть именно
30 уровней, это правда? Или может быть любое кол-во? | |
|
| |
ChaingunPredator - Captain -
 | 2193 |
 Doom Rate: 1.84
|
Отправлено: 30.01.15 18:30:58 | | | navy_seals : | очень тупой вопрос - где-то слышал, что в ваде должно быть именно
30 уровней, это правда? |
Даж догадываюсь, где слышал. Нет, конечно. | |
|
5 |
1 |
1 |
 |
|
| |
Memfis = UAC Marshal =
 | 8103 |
 Doom Rate: 1.85
|
Отправлено: 30.01.15 19:22:58 | | | В pwade (дополнительном подключаемом ваде) можно сколько угодно конечно. Вот если в iwad'е будет меньше 30, то это хороший вопрос, будет ли оно работать. | |
|
1 |
1 |
1 |
 |
|
| |
SAM = Master Corporal =
 | 276 |
 Doom Rate: 1.78
|
Отправлено: 01.02.15 19:44:21 | | | Memfis : | В pwade (дополнительном подключаемом ваде) можно сколько угодно конечно. |
я пробовал 500й номер карте присваивать, работает=) правда не в пваде а в пк3 но и на гоззе только тестировал... | |
|
| |
navy_seals = Lance Corporal =
 | 164 |
Doom Rate: 2
|
Отправлено: 02.02.15 12:32:09 | | | вопрос возник - хочу сделать лайфбар для монстра.
Нашел код http://zdoom.org/wiki/Health_Point_Bar
Код для меня сложный, на данный момент в процессе изучения.
Я правильно понимаю, что это должно работать при монстре с tid'ом 666 (tid это tag, указывается в декорейте, так ведь?) и с запасом здоровья в 100 хп? Почему то не работает.
edit
если у кого такая же проблеиа - tid указывается прямо в редакторе на конкретном монстре а не в декорейте | |
|
| |
NIGHTMARERUS Marine
 | 24 |
Doom Rate: 2
|
Отправлено: 04.02.15 17:34:38 | | | Привет всем. Подскажите как таймер картам добавить с таблицей рекордов времени, на манер паркурных карт. Делаю мапы сурвивал. Идея-спидран. Хотелось бы в будущем сервер замутить, что бы был неким мерилом крутости. | |
|
| |
Zeberpal_98 UAC Sergeant Major
 | 752 |
 Doom Rate: 1.74
|
Отправлено: 04.02.15 18:14:02 | | | для крутости надо попотеть. Сомневаюсь, что кому-то охота объяснять как это делается, ибо это оч муторно. Предлагаю сначала ознакомиться, просмотреть вад jumpmaze_prm2.pk3 и бросить эту затею | |
|
| |
alekv = 2nd Lieutenant =
 | 1456 |
 Doom Rate: 1.68
|
Отправлено: 04.02.15 18:36:58 | | | Кто в курсе как управлять консольными командами? Наподобие как If(GetCVar("Fly')) { SetCvar("fly")=false}?
Пробовал такие варианты, но мне показалось что такие условия работают только до построения карты, а мне надо что бы я мог отслеживать если игрок ввел какую либо консольную команду, то выполнилось действие.
Добавлено спустя 14 минут 53 секунды:
Тут вот еще возник вопрос, по поводу присиданий.
Стандартом в GZDoom.pk3 уже есть готовые спрайты думера, в игре если включить вид от 3его лица и присесть, то показывается анимация приседания причем если игрок сидя начнет стрелять покажет кадры стреляющего игрока, начнет двигаться в приседании, покажутся соответствующие кадры..
Так вот, я попробовал заменить все эти кадры своими не переименовывая, в настройках игрока написал Player.CrouchSprite "plyc". И я жму присесть у меня показывает только кадры приседания, начинаю стрелять или двигатся будучи сидячим, то показывают стейт спавн и ходьба только сплющеными, что делаю не так?
Думаю конечно сделать с 0 свой стейт приседания, но думаю может можно как-то обойтись уже готовым? | |
|
| |
Archi]ASTS[ UAC General
 | 12719 |
 Doom Rate: 1.87
|
Отправлено: 04.02.15 19:06:04 | | | NIGHTMARERUS
http://rghost.ru/6qPKPMG4r
Накатал небольшой пример, работает только в сингле под гоззой. | |
|
2 |
1 |
1 |
 |
|
| |
ChaingunPredator - Captain -
 | 2193 |
 Doom Rate: 1.84
|
Отправлено: 04.02.15 19:12:07 | | | alekv : | Кто в курсе как управлять консольными командами? |
Если чо, управление идет не консольными командами, а консольными переменными (цвар, CVar), то есть их можно получать и изменять в консоли (никто не мешает, кстати, делать свои). Если ты делаешь под здум:
1. Изменять цвары можно ТОЛЬКО СВОИ. Это типа защита, чтобы всякие терривады не херили конфиг игрока, по той же причине нет зандронумовского ConsoleCommand(), кстати.
2. Правильно изменять цвары надо вот так: SetCvar("mylittlecvar", 1). А вот это вот, например, бред:
SetCvar("fly")=false // D:<
Странно, что компилятор вообще допустил присваивание функциям значения %))
BTW, зачем ваще проверять, включен ли какой-то чит? Читы вообще-то для игры как-то не предназначены. Но если уж так приспичило, убирай читы в мапинфо каком-нибудь
Добавлено спустя 14 минут 39 секунд:
Archi]ASTS[
Ща попробую что-нить для багдронума сделать | |
|
5 |
1 |
1 |
 |
|
| |