Автор | Сообщение |
zer0 = Sergeant Major =
 | 601 |
Doom Rate: 1.69
|
Отправлено: 22.08.08 15:01:42 | | | Sector_ChangeSound меняет номер сиквенса, лежащего в секторе. В моем случае дверь это движущийся по вертикали 3д-пол, который я перемещаю с помощью FloorAndCeiling_Raise(Lower)ByValue. Звук издает управляющий 3д-полом сектор, в моем случае он находится очень близко к тому месту, где 3д-пол появляется в игре, так что я могу воспользоваться им как источником звука. При использовании FloorAndCeiling_... сектор распознает только сиквенсы типа platform, но не door. Я создаю два сиквенса, 1 и 2, с разной озвучкой, потом кладу любой thing сиквенс, затем вместе с командой, двигающей сектор, вставляю строчку Sector_ChangeSound, указывая таг сектора и номер сиквенса, который хочу вставить. Вставляя команду в нужное место в скрипте я заставляю дверь использовать разные сиквенсы при движении вверх и вниз. | |
|
| |
zer0 = Sergeant Major =
 | 601 |
Doom Rate: 1.69
|
Отправлено: 22.08.08 17:05:16 | | | Блин, а у нас нет никакого способа привязывать какие-либо действия к соприкосновению игрока с 3д-полом? | |
|
| |
bardysya - Sergeant -
 | 332 |
 Doom Rate: 1
|
Отправлено: 22.08.08 17:42:21 | | | Вопрос как сделать walk over телепорт, а то пишет что миссинг текстура? | |
|
| |
Lainos [B0S] - Major -
 | 2847 |
 Doom Rate: 1.38
|
Отправлено: 22.08.08 17:49:55 | | | zer0 : | Блин, а у нас нет никакого способа привязывать какие-либо действия к соприкосновению игрока с 3д-полом? |
Можно попробовать положить в контрольный сектор 3д-пола thing из категории Sector Actions, например Actor_Hits_Floor(Ceiling). Но может сработать так, что активация будет при дотрагивании до 3д-пола и пространства под ним. Проверь, может и все норм будет. По всяком случае, с Actor_hits_Ceiling проблем быть не должно. А чтобы работало с двух сторон, просто положи оба thing'а. (Надеюсь, не запутал, ибо написал, по большей части, очевидные вещи, кроме самой идеи)
eltorrio[HKT] : | как сделать walk over телепорт, а то пишет что миссинг текстура? |
О_о Поподробнее, ато я вообще не понял, где миссинг текстура и при чем тут телепорт... | |
|
9 |
1 |
1 |
 |
|
| |
zer0 = Sergeant Major =
 | 601 |
Doom Rate: 1.69
|
Отправлено: 22.08.08 17:55:37 | | | ЛайносID
это я уже пробовал. Напомню, что игрок вообще не соприкасается с контрольным секторов 3д-пола, следовательно и не работают сектор экшны. | |
|
| |
Lainos [B0S] - Major -
 | 2847 |
 Doom Rate: 1.38
|
Отправлено: 22.08.08 18:06:07 | | | zer0
Хм... значит, контрольный сектор не переносит Сектор Экшенс... не знал, он ведь все почти переносит...
Тогда не знаю, как помочь, подумаю еще... | |
|
9 |
1 |
1 |
 |
|
| |
Guest - 2nd Lieutenant -
 | 1356 |
 Doom Rate: 2.77
|
Отправлено: 22.08.08 18:50:43 | | | zer0 : | Блин, а у нас нет никакого способа привязывать какие-либо действия к соприкосновению игрока с 3д-полом? |
GetActorZ (+ GetSectorCeilingZ по необходимости) | |
|
3 |
1 |
 |
|
| |
zer0 = Sergeant Major =
 | 601 |
Doom Rate: 1.69
|
Отправлено: 22.08.08 20:55:27 | | | Guest
хмм... выглядит многообещающе, но кое-что я не совсем понял. GetactorZ показывает абсолютную высоту, не от пола, так? Я написал
script 200 (void)
{
if(GetActorZ(0)==392)
{
ceiling_lowerbyvalue(36,32,6); //это опускается 3д-кнопка
Sector_ChangeSound(35,1);
FloorAndCeiling_RaiseByValue(35,7,120); //дверь едет вверх
delay(35*10);
Sector_ChangeSound(35,2);
FloorAndCeiling_LowerByValue(35,2,120);
delay(35*14);
ceiling_raisebyvalue(36,32,6);
}
}
Все это привязано к Actor Enters Sector. По идее, когда игрок оказался на 392, скрипт должен был сработать. Не сработал. | |
|
| |
Guest - 2nd Lieutenant -
 | 1356 |
 Doom Rate: 2.77
|
Отправлено: 22.08.08 22:16:19 | | | zer0 : | По идее, когда игрок оказался на 392, скрипт должен был сработать. Не сработал. |
Для начала я не уверен, что GetActorZ можно привязывать к актору с tid=0, а так я уверен, что эту схему можно заставить работать.
Еще как вариант можешь задекорейтить невидимый айтем (который будет лежать на нужной поверхности), и при взятии которого запускается скрипт. | |
|
3 |
1 |
 |
|
| |
zer0 = Sergeant Major =
 | 601 |
Doom Rate: 1.69
|
Отправлено: 22.08.08 22:18:31 | | | Guest
с айтемом и так понятно, это я и сделал. Просто когда почти весь уровень состоит из 3д-полов, включая двери и кнопки, немножечко охреневаешь от этого раскладывания айтемов. А в этом GetActorZ за 0, как и в большинстве подобных команд, принимается игрок. В вики есть примеры с 0. | |
|
| |
Guest - 2nd Lieutenant -
 | 1356 |
 Doom Rate: 2.77
|
Отправлено: 22.08.08 22:28:57 | | | zer0 : | А в этом GetActorZ за 0, как и в большинстве подобных команд, принимается игрок. В вики есть примеры с 0. |
Вообще говоря это верно не для всех команд; во-вторых в общем случае нужно пускать цикл, а не одиночную проверку. "Заочно" сказать, что не так, не берусь. Да и лениво, честно говоря. | |
|
3 |
1 |
 |
|
| |
zer0 = Sergeant Major =
 | 601 |
Doom Rate: 1.69
|
Отправлено: 22.08.08 22:37:47 | | | Guest
в вики есть примеры, да я и сам проверял, написал:
script 10 (void)
{
print(s:"Your height is ",f:GetActorZ(0));
}
по команде Puke 10 мне благополоучно выводил, на какой я высоте. Убедился, что в том скрипте указал высоту правильно, так что до сих пор не понимаю, что не так. Даже попробовал повертеть кое-что. По какой-то причине игра не хочет использовать эту команду в поле if, не выполняя скрипт, даже когда выполняется условие по высоте. | |
|
| |
bardysya - Sergeant -
 | 332 |
 Doom Rate: 1
|
Отправлено: 23.08.08 06:09:06 | | | ЛайносID
Когда я делал сектор у которого таг стоял WR телепорт, в первый раз он работал нормально. А потом на дайндефах стала миссинг текстура. Как это починить? | |
|
| |
Lainos [B0S] - Major -
 | 2847 |
 Doom Rate: 1.38
|
Отправлено: 23.08.08 10:28:48 | | | eltorrio[HKT]
Ну там от ситуации зависит. Видимо, просто что-то напутал. Так сказать ничего нельзя. | |
|
9 |
1 |
1 |
 |
|
| |
zer0 = Sergeant Major =
 | 601 |
Doom Rate: 1.69
|
Отправлено: 27.08.08 12:46:17 | | | Кстати, про сектор экшны - некоторые из них с 3д-полами работают. Например actor enters sector, если 3д-пол nonsolid или swimmable, по-моему, работает. | |
|
| |
cybermind - Warrant Officer -
 | 1077 |
 Doom Rate: 1.87
|
Отправлено: 05.09.08 13:59:22 | | | Когда я опускаю элеватор вниз динамический свет который в нем находится остается на месте и поэтому уходит вверх сквозь потолок. Как это предотвратить?(элеватор я опускаю через команду FloorandCeiling_Lowerbyvalue и через скрипт) | |
|
| |
Shadowman = UAC Commissar =
 | 6603 |
Doom Rate: 2.46
|
Отправлено: 05.09.08 16:22:10 | | | cybermind
сделай свою лампочку, например назначь ей пустой спрайт, но повесь динлайт. И поставь вес, чтобы лежала на полу (сам динлайт можно сделать на определенном расстоянии, с отступом). Тогда при езде лифта у тебя будет и свет смещаться тоже. Стандартные гздумские динлайты, увы, здесь не помогают. | |
|
1 |
6 |
2 |
 |
|
| |
NoSkiLL*Rick = UAC Gunner =
 | 79 |
Doom Rate: 1.25
|
Отправлено: 22.09.08 09:09:45 | | | Как лучше сделать сектор (или лайндефами) с полом который ниже уровня комнаты (а-ля котлован) ? | |
|
| |
zer0 = Sergeant Major =
 | 601 |
Doom Rate: 1.69
|
Отправлено: 23.09.08 12:24:31 | | | NoSkiLL*Rick
что-то я тебя не понял, ты о чем спрашиваешь? Как сделать внутри одного сектора другой сектор с иной высотой? Рисуешь один сектор, внутри него другой, потом в свойствах устанавливаешь нужную высоту. Затем не забудь навесить текстуры на стены ямы. | |
|
| |
NoSkiLL*Rick = UAC Gunner =
 | 79 |
Doom Rate: 1.25
|
Отправлено: 23.09.08 20:28:01 | | | да потыкался уже
вот у меня другая проблема, у меня один сектор несколько левых лайндефов под себя гребет (порой они даже никак не соприкасаются) изза этого у меня много мороки. Как решить эту проблему ? | |
|
| |