Welcome to U.A.C. [O.S.A.]
login / register 
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Тема для новичков. Вопросы по маппингу/моддингу - любые! Пред.  1, 2, 3 ... , 198, 199, 200  След.
   Список разделов - Флуд и устаревшие темы - Тема для новичков. Вопросы по маппингу/моддингу - любые!Ответить
АвторСообщение
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №3961 Отправлено: 15.06.19 15:59:13
FoxPlays
Предлагаю сделать следующим образом:
1. с сектора убрать флажок секрета;
2. вместо него в сектор поместить объект SecActEnter (doomednum = 9998, в GZDB в папочке "Sector Actions", называется "Actor enters sector"), на него навесить флаг Activate once only;
3. в Action этому объекту прописать вызов ACS-скрипта (скажем, номер 1), его напишем потом;
4. создать (неважно где) объект SecretTrigger ("ZDoom/Secret", 9046), присвоить ему тэг/TID, равный, например, тоже 1;
5. код скрипта:
#include "zcommon.acs" // как всегда, начинаем с этой строчки

Script 1 (void) {
    Thing_Activate(1);
    PrintBold(s:"Secret found!"); //PrintBold печатает всем на экране.
}


Можно поставить SecretTrigger-у режим работы, при котором не выводится сообщение "A secret is revealed!", тогда оно у игрока, нашедшего секрет, выводиться не будет.

Вот, набросал пример.
1 2
FoxPlays
= Sergeant Major =
Next rank: UAC Sergeant Major after 36 points
644

Doom Rate: 2.14

Posts quality: +367
Ссылка на пост №3962 Отправлено: 15.06.19 16:19:31
N00b2015
Хорошо, а можно как нибудь сделать чтобы был скрипт для всех вадов?
Чтобы он в любом ваде при триггере секрета выводил с ним ещё дополнительное сообщение?
1 1 1
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №3963 Отправлено: 15.06.19 16:57:41
А-а-а, теперь понял.
Тогда так: нужно через zscript заменить класс игрока, и в новом классе переписать виртуальную функцию OnGiveSecret:
version "3.0"

class NewPlayer: DoomPlayer {
  override bool OnGiveSecret(bool printmsg, bool playsound) {
    A_PrintBold("\c[Gray]Secret found!", 1, "BIGFONT");
	A_PlaySound("weapons/rocklx");
    return false;
  }
}


Такая штука не будет выводить стандартное сообщение. Если оно нужно, то false замени на true. Но тогда и PrintBold придётся заменить, потому что нового сообщения тогда не будет видно (кроме как в консоли).
Также не забудь прописать в MAPINFO
gameinfo {
  playerclasses = "NewPlayer"
}

Рейтинг сообщения: +4, отметил(и): Mud, JSO x, Void Weaver, FoxPlays
1 2
FoxPlays
= Sergeant Major =
Next rank: UAC Sergeant Major after 36 points
644

Doom Rate: 2.14

Posts quality: +367
Ссылка на пост №3964 Отправлено: 15.06.19 17:19:59
N00b2015
Спасибо! Опять же помог великий ZScript :x

Добавлено спустя 1 день 3 часа 18 минут 25 секунд:

Активничаю в теме для новичков :x
Появился вопрос.
Возможно ли сделать так, чтобы была проверка ракеты на то, выпущена ли ракета от игрока или нет.
Если да (выпущена от игрока), то при помощи Species она бы проходила сквозь игрока, а то уже устал умирать от своих же ракет в кооперативе :)
1 1 1
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Ссылка на пост №3965 Отправлено: 16.06.19 21:21:20
Если твоя РЕАЛЬНАЯ цель не коцаться от собственных ракет, то никаких хитрых чеков городить и вовсе не нужно, - просто отключи флаг XF_HURTSOURCE в A_Explode ракеты. Например A_Explode(128,128,XF_NOSPLASH,0,128)

Рейтинг сообщения: +1, отметил(и): JSO x
1 9 1
FoxPlays
= Sergeant Major =
Next rank: UAC Sergeant Major after 36 points
644

Doom Rate: 2.14

Posts quality: +367
Ссылка на пост №3966 Отправлено: 17.06.19 12:23:40
Void Weaver

Я так тоже могу :x
Мне нужно чтобы ракеты продолжали дамажить, но могли проходить через игрока (если конечно ракету выпустил сам игрок). :)
1 1 1
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Ссылка на пост №3967 Отправлено: 17.06.19 13:01:31
Имеется явное противоречие твоего реквеста с реальностью, ибо ракета игрока ИТАК пролетает сквозь игрока выстрелившего ею...
Т. е. ты просишь сделать то что УЖЕ ЕСТЬ и работает.


Другой вопрос почему у тебя ракеты ведут себя иначе. о_0
1 9 1
FoxPlays
= Sergeant Major =
Next rank: UAC Sergeant Major after 36 points
644

Doom Rate: 2.14

Posts quality: +367
Ссылка на пост №3968 Отправлено: 17.06.19 13:23:40
Void Weaver
Через самого игрока (который выпустил ракету) конечно они проходят, но через других игроков - нет.

Видео
1 1 1
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Ссылка на пост №3969 Отправлено: 17.06.19 13:27:45
Ээм, т. е. ты хочешь отключить "фрэндли файр" для ракет?
1 9 1
FoxPlays
= Sergeant Major =
Next rank: UAC Sergeant Major after 36 points
644

Doom Rate: 2.14

Posts quality: +367
Ссылка на пост №3970 Отправлено: 17.06.19 13:29:40
Void Weaver
FoxPlays пишет:
Мне нужно чтобы ракеты продолжали дамажить, но могли проходить через игрока (если конечно ракету выпустил сам игрок).


Нет, мне нужно просто чтобы они проходили сквозь игроков (если конечно выпустил ракету другой игрок) :)
1 1 1
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Ссылка на пост №3971 Отправлено: 17.06.19 13:35:42
Оке. Тогда делаешь так:
Actor MyRocket : Rocket replaces Rocket
{
+MTHRUSPECIES
}
Ракеты пролетают сквозь игроков (но взрыв будет коцать), ракеты киберов (или кого угодно ещё) продолжают разрываться.

Рейтинг сообщения: +1, отметил(и): FoxPlays
1 9 1
FoxPlays
= Sergeant Major =
Next rank: UAC Sergeant Major after 36 points
644

Doom Rate: 2.14

Posts quality: +367
Ссылка на пост №3972 Отправлено: 17.06.19 13:44:41
Void Weaver
Спасибо :D Всё работает)
Кстати, а можно ли сделать что-то похожее с хитсканами? (пулями)



Скрытый текст:

Скорее всего никак :)

1 1 1
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Ссылка на пост №3973 Отправлено: 17.06.19 13:49:31
Изи. Ставишь в пуфф пули флаги:
+ALLOWTHRUFLAGS
+THRUSPECIES
-THRUACTORS

Аналогично для пуфов рельсы, если что.
Правда Зандро не знает ALLOWTHRUFLAGS флаг, а без него "сквозные" не работают. :/

Рейтинг сообщения: +1, отметил(и): FoxPlays
1 9 1
FoxPlays
= Sergeant Major =
Next rank: UAC Sergeant Major after 36 points
644

Doom Rate: 2.14

Posts quality: +367
Ссылка на пост №3974 Отправлено: 17.06.19 13:57:54
Void Weaver пишет:
Ставишь в пуфф пули флаги:
+ALLOWTHRUFLAGS
+THRUSPECIES
-THRUACTORS

Аналогично для пуфов рельсы, если что.


Только вместо +THRUSPECIES -> +MTHRUSPECIES

Спасибо :o

Рейтинг сообщения: +1, отметил(и): Void Weaver
1 1 1
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Ссылка на пост №3975 Отправлено: 17.06.19 14:06:09
Ох, тупанул...
Ну да, нужно же только сквозь специес, тогда и остальные флаги не нужны, т. е. делаешь точь-в-точь как с ракетой - только +MTHRUSPECIES. )
1 9 1
FoxPlays
= Sergeant Major =
Next rank: UAC Sergeant Major after 36 points
644

Doom Rate: 2.14

Posts quality: +367
Ссылка на пост №3976 Отправлено: 17.06.19 14:39:35
Void Weaver

Кстати, можно как нибудь заменить все рельсы и хитсканы?
А то в том-же еретике оно не работает
1 1 1
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Ссылка на пост №3977 Отправлено: 17.06.19 14:58:41
На что (и где) заменить все рельсы и хитсканы?
И что в Еретике не работает?
Замена хитскана прекрасно работает и в еретике:
Actor MyBlasterPuff : BlasterPuff replaces BlasterPuff
{
+MTHRUSPECIES
}
1 9 1
FoxPlays
= Sergeant Major =
Next rank: UAC Sergeant Major after 36 points
644

Doom Rate: 2.14

Posts quality: +367
Ссылка на пост №3978 Отправлено: 17.06.19 15:04:25
Void Weaver

Я про то, что можно ли сделать чтобы это работало везде?
Есть же ещё Strife, Hexen и ещё множество разных вадов... Мне же не заменять всё для каждого вада со своими пушками? :)
Есть возможность как нибудь сделать, чтобы рельсы и хитсканы можно было заменить один раз и это работало бы везде?
1 1 1
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Ссылка на пост №3979 Отправлено: 17.06.19 15:10:53
FoxPlays пишет:
Есть возможность как нибудь сделать, чтобы рельсы и хитсканы можно было заменить один раз и это работало бы везде?
Насколько мне известно на декоре это невозможно. Только править каждый хитскан или его предка если таковой имеется.
Мб зскрипт позволит оверрайтнуть хитскан как таковой с добавлением MTHRUSPECIES.

Добавлено спустя 17 минут 47 секунд:

--------
Флаг CANUSEWALLS гласит: This actor can activate unlocked doors and lifts.
Тогда почему монстры не могут открыть двери типа первой двери на мап01 дум2.вад?
Как можно "научить" актор открывать любую незапертую дверь?
1 9 1
JSO x
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 104 points
1336

Doom Rate: 2.26

Posts quality: +726
Ссылка на пост №3980 Отправлено: 17.06.19 17:20:03
Void Weaver пишет:
Флаг CANUSEWALLS гласит: This actor can activate unlocked doors and lifts.
Тогда почему монстры не могут открыть двери типа первой двери на мап01 дум2.вад?

Как это "не могут"? У меня прекрасно дверь выхода открывают, она там единственная, которая с двух сторон открывается и удовлетворяет всем условиям возможности открытия монстрами дверей. В помещение с бронёй в секретке дверь односторонняя, в секрете над лифтом у не-стены есть флаг "Secret". Ещё условие (насчёт обычных не уверен, но для ключевых -- обязательно): дверь должна быть тоньше то ли восьми, то ли шестнадцати маппикселей. Это используется на скоростных прохождениях в doom2.wad, на MAP27 ("Monster Condo") -- там арч-вайл при должной сноровке может открыть красную дверь, ведущую к выходу.

Скриншоты с MAP01:
Скрытый текст:






Void Weaver пишет:
Как можно "научить" актор открывать любую незапертую дверь?

С помощью Decorate -- никак. С ACS сложно, но возможно. С ZScript можно, но как, пока не могу сказать достоверно.
2 7 1
Страница 199 из 200Перейти наверх Пред.  1, 2, 3 ... , 198, 199, 200  След.
   Список разделов - Флуд и устаревшие темы - Тема для новичков. Вопросы по маппингу/моддингу - любые!