Welcome to U.A.C.
login / register 
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Скриптинг [Заказываем скрипты/Делимся скриптами] Пред.  1, 2, 3, 4, 5  След.
   Список разделов - Местечко мапперов и моддеров - Скриптинг [Заказываем скрипты/Делимся скриптами]Ответить

Будет ли эта тема полезной/жизнеспособной?
Ответ если Вы программист: [Да! Буду просматривать заказы и размещать скрипты]
20%
 20% [ 8 ]
Ответ если Вы программист: [Нет! Эта тема бред]
5%
 5% [ 2 ]
Ответ если Вы программист: [Буду иногда размещать скрипты, но заказы.. лень]
32%
 32% [ 13 ]
Ответ если Вы заказчик: [Да!]
42%
 42% [ 17 ]
Ответ если Вы заказчик: [Нет!]
0%
 0% [ 0 ]
Проголосовало думеров : 28
Всего оставлено голосов : 40
Голосование без ограничения по времени

АвторСообщение
theleo_ua
- Commissar -
Next rank: = Commissar = after 24 points
5316

Doom Rate: 1.79

Posts quality: +1220
Ссылка на пост №81 Отправлено: 09.04.17 23:05:58
TesaQ:
Может кого заинтересует, на просторах здум форума нашёл пост от ззузха, о добавлении к монстрам атаку на упреждение


На зскрипт ее не планируют переводить?

Добавлено спустя 1 час 24 минуты 9 секунд:

ZZYZX:
Можно делать менюшки, можно делать статусбары, можно делать intermission'ы, всё это не привязано к конкретному виду, а можно напрямую отрисовать всё, что тебе надо. Причём не на 35фпс, а на реальном фпс экрана.


А если я делаю 3дмодель для монстра или HUD оружия, то реально сделать чтобы она рендерилась (интерполировалась) не в 35 фпс, а в реальном фпс экрана?

ZZYZX:
А, да, ещё там прямой текстовый инпут есть. И мыша.


Я правильно понял, что "прямой текстовый инпут" это считывание данных из текстового файла, которое может помочь при реализации спавна монстров за донат?
4 1
YURA_111
UAC Sergeant Major
Next rank: Chief Petty Officer after 82 points
768

Doom Rate: 1.98

Posts quality: +137
Ссылка на пост №82 Отправлено: 10.04.17 11:32:17
TesaQ:
Может кого заинтересует, на просторах здум форума нашёл пост от ззузха, о добавлении к монстрам атаку на упреждение


Это вещь! Реализована скриптами? Идея взята с DoomLegacy ?(там называлось "Prediction Monsters") там эта хрень уже лет как 10 реализована, и было очень жаль что в GZDOOM ее в настройках нет, но теперь...
TesaQ
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 141 points
1149

Doom Rate: 1.72

Posts quality: +371
Ссылка на пост №83 Отправлено: 10.04.17 13:25:45
theleo_ua
а хз, я не знаю насчет возможностей зскрипта, но в принципе перевод на него приемлем.Мод заброшен, если что.
1
theleo_ua
- Commissar -
Next rank: = Commissar = after 24 points
5316

Doom Rate: 1.79

Posts quality: +1220
Ссылка на пост №84 Отправлено: 15.04.17 19:19:50
Shadowman:
Имеет ли смысл создать отдельную тему про Зскрипт? В которой непрограммистам популярно бы рассказывали, что есть зскрипт и с чем его едят?


Такую тему еще не создавали?
4 1
alekv
- Colonel -
Next rank: = Colonel = after 270 pointsМодератор форума
4170

Doom Rate: 1.87

Posts quality: +950
Ссылка на пост №85 Отправлено: 16.04.17 10:00:24
theleo_ua:
Такую тему еще не создавали?

Не создавали, но смысл в ней сейчас хз. Никто толком ничего про зскрипт тут не знает, а кто знает, либо лень, либо сложно с этим делом кому-то помогать т.к. зскрипт уже скорее полноценный ЯП. Нормальных доков еще нет и когда появятся не известно.
1 3 1
theleo_ua
- Commissar -
Next rank: = Commissar = after 24 points
5316

Doom Rate: 1.79

Posts quality: +1220
Ссылка на пост №86 Отправлено: 16.04.17 21:08:11
Понял, т.е. пока вопросы по зскрипту задаются в теме про новичков
4 1
YURA_111
UAC Sergeant Major
Next rank: Chief Petty Officer after 82 points
768

Doom Rate: 1.98

Posts quality: +137
Ссылка на пост №87 Отправлено: 01.05.17 21:49:10
..."ниасилил"...

Если по шаблону:
заказ на Zcкрипт от: YURA111
Cкрипт должен:
Мне нужна полная эмуляция функции: https://zdoom.org/wiki/A_SorcSpinBalls
Порт: GZDoom v2.4+

Если это возможно конечно.


Функция является Хексеновской и может быть использована только с акторами которые являются дочерними от актора "Heresiarch". Мне это никак не подходит, а функция нужна...
cybermind
- Warrant Officer -
Next rank: = Warrant Officer = after 95 points
1045

Doom Rate: 1.99

Posts quality: +163
Ссылка на пост №88 Отправлено: 01.05.17 21:57:19
Открой gzdoom.pk3/zscript/hexen/heresiarch.txt
1 2 1
YURA_111
UAC Sergeant Major
Next rank: Chief Petty Officer after 82 points
768

Doom Rate: 1.98

Posts quality: +137
Ссылка на пост №89 Отправлено: 01.05.17 22:03:03
открывал еще до того как здесь написать

https://github.com/coelckers/gzdoom/blob/master/wadsrc/static/zscript/hexen/heresiarch.txt
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1633
Ссылка на пост №90 Отправлено: 02.05.17 05:47:46
А что имеется в виду под полной эмуляцией?
2 2 1
YURA_111
UAC Sergeant Major
Next rank: Chief Petty Officer after 82 points
768

Doom Rate: 1.98

Posts quality: +137
Ссылка на пост №91 Отправлено: 02.05.17 09:18:28
ZZYZX:
А что имеется в виду под полной эмуляцией?


Функция(ии) или скрипт(ы) должны точно реплецировать действие функции A_SorcSpinBalls.

Несколько функций еретика и хексена я уже реплецировал при помощи декорейта. Но для этой у меня знаний и понимания не хватает...
Dasperal
= Lance Corporal =
Next rank: - Master Corporal - after 30 points
170

Doom Rate: 2.62

Posts quality: +38
Ссылка на пост №92 Отправлено: 02.05.17 17:09:05
YURA_111
делал в прошлом году такую функцию на декорейте и ACS(хотя там не только это функция, а весь ерисиарх). получилось такое: (звук уже исправлен)


из недостатков: звук и атака фиолетовыми шарами не в точности повторяют оригинал, нет ускорения в начале быстрого вращения, сразу переход на максимальную или минимальную скорость вращения.
подумываю переделать на Zscript.

Рейтинг сообщения: +2, отметил(и): theleo_ua, YURA_111
1
YURA_111
UAC Sergeant Major
Next rank: Chief Petty Officer after 82 points
768

Doom Rate: 1.98

Posts quality: +137
Ссылка на пост №93 Отправлено: 02.05.17 17:25:01
Dasperal:
делал в прошлом году такую функцию на декорейте и ACS


Впечатляет! И смотрится действительно круто и то, что весь монстр сделан это хорошо, но я бы все таки хотел если не точную копию, то близкую по действию.

Dasperal:
из недостатков: звук и атака фиолетовыми шарами не в точности повторяют оригинал.
подумываю переделать на Zscript.


Если сделаешь - ОГРОМНАЯ просьба, поделись пожалуйста - сам точно не осилю :bitsa:

Других монстров еретика и хексена я переделываю декорейтом, т.к. ACS боюсь использовать и поэтому не изучаю из за возможных проблем в мультиплеере (мой мод мультиплеерный). Иногда получается много "букавок" - но работает именно так, как мне нужно...
BlackMetalGuy
Recruit
Next rank: Marine after 10 points
10

Doom Rate: 2

Ссылка на пост №94 Отправлено: 23.08.17 17:15:16
Заказ на скрипт от: BlackMetalGuy

Подробно что должен делать скрипт: что бы при использовании оружия ближнего боя(пользовательского),на экране игрока появлялись капли крови ,а по окончанию боя игрок вытирал кровь рукой

Под какой порт: GZDoom
YURA_111
UAC Sergeant Major
Next rank: Chief Petty Officer after 82 points
768

Doom Rate: 1.98

Posts quality: +137
Ссылка на пост №95 Отправлено: 24.09.17 22:09:00
Заказ на скрипт от: Yura111

Подробно что должен делать скрипт: В мультиплеере, когда один игрок зашел в некую неизведанную локацию, чтобы у всех союзников по кооперативу на МАПе показывалась эта локация (а не так как сейчас, что каждый должен туда прийти, чтобы локация показывалась на карте).
Тип скрипта: ZScript (не ACS)

Под какой порт: GZDOOM
Kragoth762
= Master Sergeant =
Next rank: - Sergeant Major - after 56 points
474

Doom Rate: 1.93

Posts quality: +47
Ссылка на пост №96 Отправлено: 24.09.17 22:53:30
YURA_111
телепортация игрока на другого игрока в мгновение? (0 tic) и сбор информации.

Рейтинг сообщения: -1, отметил(и): Infernal_KoT
2 1
Infernal_KoT
- Sergeant -
Next rank: = Sergeant = after 32 points
308

Doom Rate: 2

Posts quality: +86
Ссылка на пост №97 Отправлено: 25.09.17 06:54:23
Graf Zahl :
The automap is not part of the game simulation. ACS has no defined access to this information


YURA_111:
каждый должен туда прийти, чтобы локация показывалась на карте

Не просто прийти, а ткнуться носом в лайндефы. То есть, для отображения комнаты, нужно развернуться на 360°, и так, чтобы ничего не загораживало обзор. Можно обратиться к Nash'у. Он как-раз чем-то отдаленно похожим заморочился. Стандартная карта блокируется, а вместо неё:
Скрытый текст:

Nash:
There is a HudMessage flag that only appears when the automap is up. Code a map drawing system like in this picture, using said flag to draw the tiles. ;)



Kragoth762:
телепортация игрока на другого игрока в мгновение? (0 tic) и сбор информации.

Да, это прекрасно скажется на управлении. Каждый тик его телепортить, э? А если игроков много? :ha:

Рейтинг сообщения: +1, отметил(и): Kragoth762
1 1
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1633
Ссылка на пост №98 Отправлено: 25.09.17 07:47:38
Господа, давайте не писать костыли, раз уж в требованиях зскрипт.

Насколько я помню, отображение на автокарте прописывается в флагах линии. Есть глобальный массив level.lines, в котором есть много вот таких штук. В которых, опять же если ничего не путаю, ML_MAPPED означает что на данном клиенте эта линия отображается.
А получить все линии не из глобального массива, а только в определённом радиусе в свою очередь можно через вот эту фигню.
2 2 1
Infernal_KoT
- Sergeant -
Next rank: = Sergeant = after 32 points
308

Doom Rate: 2

Posts quality: +86
Ссылка на пост №99 Отправлено: 25.09.17 08:04:06
ZZYZX
О zscript крайне мало информации. Нужно-же считать уже увиденные игроком линии и отрисовать их у союзников. Ничего даже приблизительно похожего я не нашел.
1 1
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1633
Ссылка на пост №100 Отправлено: 25.09.17 08:58:34
Infernal_KoT:
Нужно-же считать уже увиденные игроком линии и отрисовать их у союзников

Ткни меня носом где так написано. Нужно определить что игрок открыл какую-то область и открыть её же у всех остальных.

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

Единственный относительно адекватный вариант — повторить логику появления линий на автокарте (BlockLinesIterator и сделать проверку на видимость). Довольно нетривиально и может лагать (не пробовал), но реализуемо, по идее.
2 2 1
Infernal_KoT
- Sergeant -
Next rank: = Sergeant = after 32 points
308

Doom Rate: 2

Posts quality: +86
Ссылка на пост №101 Отправлено: 25.09.17 11:49:52
ZZYZX:
Ткни меня носом где так написано. Нужно определить что игрок открыл какую-то область и открыть её же у всех остальных.

Ну, видимо, не так выразился. Как открыть эту область у остальных игроков? Впрочем, если считать в радиусе, то как это будет на обширных локациях, или же наоборот, в очень маленьких - сквозь стены не будет просвечивать?
1 1
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1633
Ссылка на пост №102 Отправлено: 25.09.17 12:28:40
Infernal_KoT:
Впрочем, если считать в радиусе, то как это будет на обширных локациях, или же наоборот, в очень маленьких - сквозь стены не будет просвечивать?

Будет, но это малая цена за саму возможность.
2 2 1
Infernal_KoT
- Sergeant -
Next rank: = Sergeant = after 32 points
308

Doom Rate: 2

Posts quality: +86
Ссылка на пост №103 Отправлено: 25.09.17 12:38:36
ZZYZX
Хитсканом можно отследить "убитую" стену?
1 1
MyNameIs
- Captain -
Next rank: = Captain = after 250 points
2090

Doom Rate: 2.01

Posts quality: +930
Ссылка на пост №104 Отправлено: 25.09.17 13:09:09
Вроде.. Можно же ацсом переключать скайбоксы? Я просто протестить сейчас не могу.
Скайбокс ведь рисует стены, можно через него

А если скайбокс через скайбокс может рисовать, тогда просто пол изменять в секторе основного, пол виден редко
1 1 1
Kragoth762
= Master Sergeant =
Next rank: - Sergeant Major - after 56 points
474

Doom Rate: 1.93

Posts quality: +47
Ссылка на пост №105 Отправлено: 01.10.17 01:30:42
ACS: 2D lines intersection
пересечение двух прямых...

Добавлено спустя 1 день 10 часов 12 минут 7 секунд:

что-то про 2D линии
p.s.: копируйте в билдер если трудно на блокноте читать
2 1
YURA_111
UAC Sergeant Major
Next rank: Chief Petty Officer after 82 points
768

Doom Rate: 1.98

Posts quality: +137
Ссылка на пост №106 Отправлено: 21.10.17 09:42:08
Заказ на скрипт от: Yura111

Подробно что должен делать скрипт: Полный аналог "PowerRegeneration" (с учетом "Powerup.Strength"), только для брони.
Тип скрипта: ZScript (не ACS)

Под какой порт: GZDOOM
Герр Смертоносец
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 127 points
1163

Doom Rate: 1.34

Posts quality: +1036
Ссылка на пост №107 Отправлено: 14.11.17 05:24:29
По ZScript шарит кто?

Вот есть две фичи: MonsterMove() и TryWalk(), которые заставляют монстра перемещаться строго по прямой вдоль мировой координаты X. Никаких аргументов эти функции не имеют, никакими перепробованными колдунствами не удалось заставить монстра изменить это направление. Несколько часов гугления убедили меня в том, что ни на официальном форуме, ни в вики инфы по этой теме просто нет.

Собственно, вопрос№1: каким образом заставить эти фичи работать в других направлениях?

Далее, единственная вменяемая фича, с которой можно заставить монстра двигаться в произвольном направлении - TryMove(). Но она, блэт, принципиально не открывает двери. (Зато их замечательно открывает MonsterMove).

Собственно, вопрос№2: каким образом можно заставить монстра открыть произвольную дверь в обход вшитых механизмов A_Chase?


Грубые и громоздкие решения у меня есть, но интересуют более-менее изящные. Внутри ещё теплится надежда, что Graf Zahl не настолько поехал, чтобы встраивать в релиз заведомо неработающие фичи.
5
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1633
Ссылка на пост №108 Отправлено: 14.11.17 07:47:02
Я подозреваю что эти функции двигают монстра строго вперёд. Перёд ему менять не пробовал?
//
// P_Move
// Move in the current direction,
// returns false if the move is blocked.
//

bool P_Move (AActor *actor)

DEFINE_ACTION_FUNCTION(AActor, MonsterMove)
{
	PARAM_SELF_PROLOGUE(AActor);
	ACTION_RETURN_BOOL(P_Move(self));
}


Заставить монстра открыть дверь можно легко и непринуждённо — найти эту дверь при помощи того же BlockLinesIterator, проверить что она перед монстром и на вменяемой высоте, после чего заюзать дверь в ручном режиме (активировать спешиал). Только имей в виду что если на двери стоит "player presses use", то ацс может неадекватно отреагировать на открытие такой двери монстром. Хотя это в принципе возможно по идее.
2 2 1
Герр Смертоносец
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 127 points
1163

Doom Rate: 1.34

Posts quality: +1036
Ссылка на пост №109 Отправлено: 14.11.17 14:34:56
ZZYZX:
Я подозреваю что эти функции двигают монстра строго вперёд. Перёд ему менять не пробовал?

Ммм, а теперь ещё раз. Что такое P_Move, где, как и чем его менять? Как он вообще задаёт перёд, являясь булевой переменной? И откуда дровишки? В вики ничего подобного нет. Какие-то глубокие внутренности движка?

ZZYZX:
Заставить монстра открыть дверь можно легко и непринуждённо — найти эту дверь при помощи того же BlockLinesIterator

А это что за зверь, это зскрипт или acs, и какими аргументами оно питается?

Возникает ощущение, что где-то есть какая-то другая более подробная документация.
5
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1633
Ссылка на пост №110 Отправлено: 14.11.17 15:37:34
P_Move это внутренняя функция которая вызывается.
MonsterMove = P_Move
Двигает согласно комментарию в текущем направлении. Текущее — это куда морда повёрнута. Следовательно поворачивай в правильную сторону, и тогда будет не только вдоль оси X.

Герр Смертоносец:
А это что за зверь, это зскрипт или acs, и какими аргументами оно питается?

Это зскрипт.

Герр Смертоносец:
Возникает ощущение, что где-то есть какая-то другая более подробная документация.

В исходнике гздума
https://github.com/coelckers/gzdoom/blob/master/wadsrc/static/zscript/base.txt#L450

В связи с тем, что зскрипт по принципу работы практически дословно повторяет C++, то можно лазить в гздум и смотреть как там сделано. И пытаться делать так же.
Документации как таковой... не. Врать не буду. Она есть. Но у меня в голове из-за опыта с исходником гздума документация раза в 4 подробнее чем можно найти в текстовом виде.
В связи с чем я всем советую зскрипт и даже иногда на вопросы отвечаю >_>
2 2 1
Герр Смертоносец
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 127 points
1163

Doom Rate: 1.34

Posts quality: +1036
Ссылка на пост №111 Отправлено: 14.11.17 16:19:55
ZZYZX:
P_Move это внутренняя функция которая вызывается.
MonsterMove = P_Move
Двигает согласно комментарию в текущем направлении. Текущее — это куда морда повёрнута. Следовательно поворачивай в правильную сторону, и тогда будет не только вдоль оси X.

Я понял, что внутри движка есть свои функции с очень продвинутым функционалом, но как оперировать ими в Zscript lump с точки зрения синтаксиса? Нужны какие-то примеры работоспособного кода. Тупо непонятно, что писать, в каком формате, и с какой стороны к этому вообще подступиться. Метод тыка не работает.
P_Move = Vec2Angle(speed,angle); 

Это, например, выдаёт ошибку Unknown identifier 'P_Move'. Все прочие попытки манипулировать этим из Зскрипта тоже выдают ошибку.

Если же монстру просто повернуть морду через A_SetAngle или A_FaceTarget, то ничего не меняется - он продолжает двигаться вдоль оси Х независимо от того, как он визуально развёрнут. Либо это баг, либо разрабы забыли сделать доступный из Zscript способ изменить внутреннюю функцию, без которого внешние бесполезны. Либо я чего-то фундаментально не понимаю.

И по BlockLinesIterator вопрос.
Парсер внезапно сожрал BlockLinesIterator(self). Но попытки посмотреть логику его работы через старый добрый A_PrintBold(BlockLinesIterator(self)) выдали "Cannot convert to string". Спрашивается, что за загадочный формат переменной оно выдаёт, и куда его можно вставить, чтобы снять с него инфу о линии? И чем эту линию потом исследовать? В списке функций ничего подобного нет. Опять же, нужны какие-то примеры рабочего кода в Zscript.

Вообще это жуть и пагубность, конечно. При Рэнди такой хуйни не было. Порт, давший расцвет модостроению за счёт своей прекрасной документированности, развивается в сторону "чёрного ящика", который можно полноценно использовать только если лично перелопачивать весь исходный код.

Рейтинг сообщения: +1, отметил(и): JSO x
5
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1633
Ссылка на пост №112 Отправлено: 14.11.17 17:03:08
ёмаё да забудь ты про P_Move. Это цитата из кода гздума была.
Вертишь актора в нужную сторону. А потом MonsterMove юзаешь.
Методом тыка зскрипт НЕ РАБОТАЕТ. Примеры читать в gzdoom.pk3 папке zscript.
BlockLinesIterator(self) это дичь. Парсер хавает потому что это динамическое преобразование типов, которое возвращает null.

Отдельно про направление. Судя по всему используется переменная actor->movedir. В нашем случае self.movedir, я так понимаю byte angle.

Герр Смертоносец:
Порт, давший расцвет модостроению за счёт своей прекрасной документированности, развивается в сторону "чёрного ящика", который можно полноценно использовать только если лично перелопачивать весь исходный код.

Я тебя умоляю, не смеши мои тапки, пяткам щекотно. По-твоему документация по ацс и декору всегда была полноценной? Зскрипт появился полгода назад.
Единственная проблема с зскриптом в том, что осваивать его методом тыка примерно то же самое, что и осваивать С++ методом тыка. Можно, но нерационально.
И таки да. Раньше многие вещи были бы невозможны вообще от слова совсем ) А сейчас всего-то нужно применить глаза и почитать код.

А ранди вообще последние несколько лет задерживал(а)(о) развитие порта, из-за чего ничего принципиально нового не появлялось, DoomScript стал байкой, а выражение "для ввода фичи она должна пройти через здум" отбивало у контрибьюторов всё желание что-то делать. Видимо, проблемы с гендерной самоидентификацией важнее ввода новых фич.

Рейтинг сообщения: +1, отметил(и): JSO x
2 2 1
Герр Смертоносец
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 127 points
1163

Doom Rate: 1.34

Posts quality: +1036
Ссылка на пост №113 Отправлено: 14.11.17 17:25:49
ZZYZX:
Вертишь актора в нужную сторону. А потом MonsterMove юзаешь.

      void A_testchase()
   {
   A_SetAngle(5+angle); //верчу актора в нужную сторону
   MonsterMove();
   }

Сделал. Монстр должен ровненько ходить по кругу. А он движется по прямой, вращаясь. В чём ошибка?


ZZYZX:
По-твоему документация по ацс и декору всегда была полноценной?

Возможно, самых бородатых времён я не застал, но по крайней мере в последние годы к выходу свежей версии всё очень оперативно прописывалось.

upd:
ZZYZX:
Отдельно про направление. Судя по всему используется переменная actor->movedir. В нашем случае self.movedir, я так понимаю byte angle.

Значит "перёд" определяет всё-таки не angle. Сейчас буду с этим пробовать.

upd2: Так, прогресс! Направление действительно задаётся через self.movedir, но это явно не byte angle, не градусы и не fixed, а какой-то другой формат. Всего доступно 8 значений: (0,1,2,3,4,5,6,7), которые задают направления с шагом в 45 градусов. При попытке подставить отрицательное число или 8 и больше монстр просто стоит на месте и не двигается. При попытке задать дробное значение оно принудительно округляется. При попытке задать вектор парсер выдаёт ошибку.

      void A_testchase()
   {
   A_SetAngle(angle+5);
   self.movedir = (8*angle/360);
   MonsterMove();
   }

С этим кодом монстр вместо круга обходит правильный восьмиугольник, после чего почему-то встаёт намертво и вертится на месте.

Уже что-то, но по-прежнему загадочно.
5
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1633
Ссылка на пост №114 Отправлено: 14.11.17 21:39:54
А у тебя просто англе бывает выше 360. Напиши %8 в конце.
2 2 1
Герр Смертоносец
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 127 points
1163

Doom Rate: 1.34

Posts quality: +1036
Ссылка на пост №115 Отправлено: 15.11.17 04:00:48
Англ вообще по-дефолту выдаёт значения от 0 до 180, а потом резко перескакивает на -179 и дальше идёт по отрицательным числам, поэтому его в любом случае пришлось шлифануть дополнительной проверочкой. Но в итоге movedir действительно жрёт странный формат угла, в котором всего 8 значений. Возможно, это какие-то особенности работы pathfinding из оригинального doom, фиг знает.

Пока сделал громоздкое подобие A_Chase, в котором MonsterMove с выбором одного из 8 направлений задействуется исключительно при застревании. В принципе они уже более-менее ходят и открывают двери.
5
alekv
- Colonel -
Next rank: = Colonel = after 270 pointsМодератор форума
4170

Doom Rate: 1.87

Posts quality: +950
Ссылка на пост №116 Отправлено: 07.12.17 13:42:37
Подробно что должен делать скрипт:
Мне нужна функция или что-то в этом духе на zscript, которая может определить нажатие клавиши ESC и передать acs скрипту..!
Что бы в acs мог потом использовать как-то так, если это вообще возможно:
script "myScript" (void)
{
if(GetEscButton() == true)//Если игрок нажал клавишу Esc
   {do some..}
}

Надеюсь с помощью такой функции смогу проверять не только нажатие кнопки ESC, но и понять открыто меню игры или нет..
Буду несказанно рад, если функция сможет проверять не только esc но и все клавиши :)
Под какой порт: GZDOOM 3.2+
1 3 1
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1633
Ссылка на пост №117 Отправлено: 07.12.17 13:54:14
Советую писать сразу на зскрипте, т.к. при открытом меню ацс работать не будет в принципе.
Привязка класса зскрипта к конкретной карте (если нужно) возможна через MAPINFO EventHandlers. (документировано как ни странно)

Наличие открытого меню в зскрипте проверяется через Menu.GetCurrentMenu() - возвращает объект или null.
Вызов зскрипта из ацс возможен через https://zdoom.org/wiki/ScriptCall
2 2 1
alekv
- Colonel -
Next rank: = Colonel = after 270 pointsМодератор форума
4170

Doom Rate: 1.87

Posts quality: +950
Ссылка на пост №118 Отправлено: 07.12.17 14:14:25
ZZYZX:
при открытом меню ацс работать не будет в принципе.

Совсем про это забыл.. печалька =(

ZZYZX:
Привязка класса зскрипта к конкретной карте (если нужно) возможна через MAPINFO EventHandlers. (документировано как ни странно)
Наличие открытого меню в зскрипте проверяется через Menu.GetCurrentMenu() - возвращает объект или null.

увы, ни хрена не понял =(
мне понятно только вот это:
ZZYZX:
Вызов зскрипта из ацс возможен через https://zdoom.org/wiki/ScriptCall


Зачем привязка зскрипта к карте?

if(Menu.GetCurrentMenu() != 0)//если меню открыто?


Мне это надо вот для такой задачи:
Если игрок открыв кастомное UI на acs в игре, мог нажать на ESC и это кастомное UI закрылось игнорируя открытие меню игры!,

На деле получается просто открывается menu.. И это явно плохо и не нормально.. Кнопка ESC должна закрыть любое открытое кастомное UI и только потом открыть menu игры.

По этому я хз как это сделать что бы acs проверял нажатие esc т.к. все менюхи у меня acsные, а зскрипт блокировал открытие меню пока не закрыты acs менюшки.
1 3 1
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1633
Ссылка на пост №119 Отправлено: 07.12.17 17:58:51
alekv:
Зачем привязка зскрипта к карте?

Чтобы отпилить ацс насовсем.

alekv:
if(Menu.GetCurrentMenu() != 0)//если меню открыто?

0 и null это разные вещи.

alekv:
Если игрок открыв кастомное UI на acs в игре, мог нажать на ESC и это кастомное UI закрылось игнорируя открытие меню игры!,

Напиши своё кастомное меню на зскрипте.
https://forum.zdoom.org/viewtopic.php?p=988297#p988297 пример. Пожалуйста, не говори "я не понимаю" и попробуй прочитать что там написано сначала. И изучить.

alekv:
увы, ни хрена не понял =(

Погуглить не пробовал? http://zdoom.org/wiki/Events_and_handlers / https://zdoom.org/wiki/MAPINFO/Map_definition
Но учитывая то что ты дальше написал, не рекомендую это делать. Вместо этого рекомендую идти переделывать гуй на зскрипте. В связи с тем, что гуй на ацс это извращение и пережиток прошлого, а в зскрипте нормальная модель событий ввода сделана как в JS, Qt, C# и так далее.
2 2 1
alekv
- Colonel -
Next rank: = Colonel = after 270 pointsМодератор форума
4170

Doom Rate: 1.87

Posts quality: +950
Ссылка на пост №120 Отправлено: 07.12.17 20:32:07
ZZYZX:
Вместо этого рекомендую идти переделывать гуй на зскрипте.

Ну не целесообразно.. Меня на 100% устраивает acs интерфейс, проблема только в клавише ESC, и из-за нее переписывать ВСЕ UI в игре которого не мало, да еще и на языке который я вообще не знаю и знать не хочу т.к. он мне не пригодится т.к. кроль последнее что сделаю на этом гздуме.. ну так себе идея.

ZZYZX:
0 и null это разные вещи.

я не программист.. откуда мне знать :)

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

ZZYZX
Решил попробовать разобраться в зскриптовом меню и нашел баг
Скрытый текст:


Это происходит когда в оконном режиме вкл. меню и нажал на развернуть окно.

А еще заметил что там у тебя только обычное меню, а настройки это дефолтное гоззы?

Из-за нового шрифта мне придется писать меню на зскрипте т.к. дефолтное гоззо меню говно.
1 3 1
Страница 3 из 5Перейти наверх Пред.  1, 2, 3, 4, 5  След.
   Список разделов - Местечко мапперов и моддеров - Скриптинг [Заказываем скрипты/Делимся скриптами]