Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Ультимативная тема по ZScript! Пред.  1, 2
   Список разделов - Местечко мапперов и моддеров - Ультимативная тема по ZScript!Ответить
АвторСообщение
Dasperal
= Corporal =
Next rank: - Lance Corporal - after 26 points
104

Doom Rate: 2

Posts quality: +11
Ссылка на пост №21 Отправлено: 24.07.18 23:18:27
Можно ли как-то визуализировать LineTrace?
JSO x
- Sergeant Major -
Next rank: = Sergeant Major = after 50 points
550

Doom Rate: 2.42

Posts quality: +195
Ссылка на пост №22 Отправлено: 27.07.18 14:38:15
JSO x:
непонятно, что за "invoker.*"

Нашёл. Там три типа: "Self", "Invoker" и "Owner". Про первые два уже было сказано, последний -- ссылка на владельца инвентаря (не на саму вещь!).


Dasperal, нет. По крайней мере, я не вижу такого в теории. Можно вместе с LineTraсe использовать что-нибудь из Railgun'а или запускать быстрый невидимый снаряд со шлейфом. А прочертить в пространстве линию -- это к ZZYZX'у, скорее всего. Правда, думаю, и он не знает.


* * *

Где-то на ZDoom-форуме видел функцию "TestMObj" (?) или "TestForMObj" (?). Она проверяла пересечение коллизий, насколько я понял.
Во-первых, как она правильно пишется, во-вторых, что конкретно делает? Я не уверен, что правильно понял её принцип действия.

EDIT: "bool TestMobjLocation()" не оно? Нужно, чтобы действие происходило, когда игрок НА акторе (прыжком, например). Если есть другой способ -- подскажите, пожалуйста.

EDIT2: как одновременно двинуть все объекты одного типа на карте? Через TID (то есть основной способ ACS) нежелательно: они изначально спаунятся через ZScript (EventHandler), который сразу же TID'ы не устанавливает. Установить их сразу после появления объекта у меня не получилось -- QZDoom вылетал.



EDIT3: всё, с зачёркнутыми вопросами разобрался сам. Первый через CanCollideWith решил, второй -- через ThinkerIterator. Но первый всё равно остаётся открытым.

Рейтинг сообщения: +1, отметил(и): Void Weaver
1 5
N00b2015
= Sergeant =
Next rank: - Master Sergeant - after 6 points
394

Doom Rate: 2.25

Posts quality: +113
Ссылка на пост №23 Отправлено: 17.08.18 22:35:42
Каким образом, например, по нажатию забинженной клавиши можно вызвать аналогичный strife'овскому диалог (субкласс от ConversationMenu)? Не хочется использовать defaultconversationmenuclass в mapinfo.gameinfo, так как он заменит все диалоги.
Ещё интересует, переведены ли в zscript strife'овские списки предметов/ключей/заданий. zscript/statusbar/strife_sbar.txt
1 1
Void Weaver
- 1st Lieutenant -
Next rank: = 1st Lieutenant = after 22 points
1818

Doom Rate: 1.82

Posts quality: +543
Ссылка на пост №24 Отправлено: 27.08.18 05:02:38
Anto96WS:
Void Weaver:
Anto96WS, кстати было бы интересно узнать чем закончились твои эксперименты с A_Overlay.

Выбивает "Invalid state parameter a_overlay".
Я так хз как юзать кастоминвентори оверлэй в декоре, но на скрипте выглядит отпадно.
1 7 1
Void Weaver
- 1st Lieutenant -
Next rank: = 1st Lieutenant = after 22 points
1818

Doom Rate: 1.82

Posts quality: +543
Ссылка на пост №25 Отправлено: 14.06.19 15:44:00
JSO x пишет:
ZScript подойдёт?

class MultiplayerMonstersHandler: EventHandler {

	override void WorldThingSpawned( WorldEvent e ) {
		if ( multiplayer && e.Thing != NULL && e.Thing.bIsMonster && !( e.Thing.SpawnFlags & MTF_Single ) ) {
			e.Thing.ClearCounters();
			e.Thing.Destroy();
		}
	}
}
А зачем тут проверка на НУЛЛ? Разве соспуаненный моб может быть НУЛЛ?

Бтв, а откуда вообще скриптеры берут инфу по таким флагам типа "MTF_Single"? о_о Гугл всего-то 7 результатов выдаёт.
1 7 1
JSO x
- Sergeant Major -
Next rank: = Sergeant Major = after 50 points
550

Doom Rate: 2.42

Posts quality: +195
Ссылка на пост №26 Отправлено: 14.06.19 21:28:24
Void Weaver пишет:
А зачем тут проверка на НУЛЛ? Разве соспуаненный моб может быть НУЛЛ?

На всякий случай. Например, если другой, сторонний обработчик событий с приоритетом выше моего тоже убирает только что появившегося монстра. Маловероятно, но в этом отчасти и заключается смысл правильного программирования -- предусматривание всех событий, даже тех, что кажутся невероятными.

[EDIT: Кстати, да, ZZYZX тоже пример хороший привёл, насчёт душ потерянных. Гораздо более вероятное событие.]

Void Weaver пишет:
Бтв, а откуда вообще скриптеры берут инфу по таким флагам типа "MTF_Single"? о_о Гугл всего-то 7 результатов выдаёт.

Я -- из своего qzdoom.pk3:\zscript\constants.txt (собственно, вся директория "\zscript\"). А вообще можно здесь, на GitHub, у Графа.
1 5
ZZYZX
- Commissar -
Next rank: = Commissar = after 356 pointsМодератор форума
4984

Doom Rate: 1.74

Posts quality: +1366
Ссылка на пост №27 Отправлено: 14.06.19 22:22:19
Void Weaver пишет:
Разве соспуаненный моб может быть НУЛЛ?

Может. Если спавн не удался или если произошло мгновенное уничтожение (как ракета или лостсоул, появившийся в стене/другом акторе).

Void Weaver пишет:
Бтв, а откуда вообще скриптеры берут инфу по таким флагам типа "MTF_Single"?

В исходниках дума и/или gzdoom.pk3
2 2 1
Void Weaver
- 1st Lieutenant -
Next rank: = 1st Lieutenant = after 22 points
1818

Doom Rate: 1.82

Posts quality: +543
Ссылка на пост №28 Отправлено: 15.06.19 01:53:52
JSO x пишет:
На всякий случай. Например, если другой, сторонний обработчик событий с приоритетом выше моего тоже убирает только что появившегося монстра. Маловероятно, но в этом отчасти и заключается смысл правильного программирования -- предусматривание всех событий, даже тех, что кажутся невероятными.
Не, ну я тоже всегда стараюсь страховаться от потенциально вероятных конфликтов, но разве тут вообще может быть какой-то конфликт? Т. е. разве скрипт может поперхнуться пытаясь удалить актор о котором он (скрипт) НЕ ЗНАЕТ по причине того что инициатива удаления актора была перехвачена более приоритетным скриптом?

JSO x пишет:
Я -- из своего qzdoom.pk3:\zscript\constants.txt (собственно, вся директория "\zscript\"). А вообще можно здесь, на GitHub, у Графа.
ZZYZX пишет:
В исходниках дума и/или gzdoom.pk3
Так я и думал. Ну что ж, буду ждать наполнения вики.

ZZYZX пишет:
Может. Если спавн не удался или если произошло мгновенное уничтожение (как ракета или лостсоул, появившийся в стене/другом акторе).
JSO x, ZZYZX, я наверное туплю или чего-то не догоняю, но моментально уничтоженный актор проходя стэйт своей смерти (если длительность не 0-вая) вроде ещё не является НУЛЛ, а неудачный спаун через ф-цию типа _СпаунИтем просто возвращает false. о_0
Т. е. НУЛЛ от актора можно получить только сравнивая что-то переставшее существовать с чем-то что существовало ранее, или не?
1 7 1
ZZYZX
- Commissar -
Next rank: = Commissar = after 356 pointsМодератор форума
4984

Doom Rate: 1.74

Posts quality: +1366
Ссылка на пост №29 Отправлено: 15.06.19 18:04:19
Void Weaver
Попробуй выстрелить из ракетницы вплотную к мобу. С годмодом конечно же. Ты увидишь что ракета не взрывается, а тупо не появляется.
То же самое с плазмой и бфг. Вот тогда они будут нулл сразу.
2 2 1
Void Weaver
- 1st Lieutenant -
Next rank: = 1st Lieutenant = after 22 points
1818

Doom Rate: 1.82

Posts quality: +543
Ссылка на пост №30 Отправлено: 15.06.19 22:05:59
Попробовал... всё дохнет как и положено, а не мистически исчезает без появления:

GZDoom 3.7.0 (x64), compat options - default

Ну и Соулы именно что дохнут а не не появляются, причём в ваниле всё ведёт себя точно так же. :/
1 7 1
ZZYZX
- Commissar -
Next rank: = Commissar = after 356 pointsМодератор форума
4984

Doom Rate: 1.74

Posts quality: +1366
Ссылка на пост №31 Отправлено: 16.06.19 04:02:09
Странно, в зандронуме в дуэли именно так как я описал. Возможно пофиксили либо это компатфлаг.
2 2 1
Void Weaver
- 1st Lieutenant -
Next rank: = 1st Lieutenant = after 22 points
1818

Doom Rate: 1.82

Posts quality: +543
Ссылка на пост №32 Отправлено: 16.06.19 13:43:23
Мультик Зандро, - отличная тестовая площадка.

В общем праздный вопрос про НУЛЛ-спаунящиеся акторы остаётся открытым.
1 7 1
Страница 2 из 2Перейти наверх Пред.  1, 2
   Список разделов - Местечко мапперов и моддеров - Ультимативная тема по ZScript!