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

Doom Rate: 1.98

Posts quality: +136
Ссылка на пост №761 Отправлено: 09.03.16 16:07:24
Если объект это существо, то:
http://zdoom.org/wiki/A_JumpIfTargetInLOS

Если объект просто предмет, то еще не придумал...
Герр Смертоносец
- Warrant Officer -
Next rank: = Warrant Officer = after 67 points
1073

Doom Rate: 1.35

Posts quality: +947
Ссылка на пост №762 Отправлено: 09.03.16 16:16:27
alekv
Через SetActivator(0,AAPTR_PLAYER_GETTARGET), если верить вики.
5
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1633
Ссылка на пост №763 Отправлено: 09.03.16 17:22:08
YURA_111:
Почему же не добьешься - еще как добьешься - AAPTR_TARGET флаг ты что не заметил ? - это и есть цель. Тут просто главное правильно формулу указать, которой я и не знаю...

Чувак, ты берёшь свой health, а назначаешь таргету, однако.

+1 к решению Смертоносца.
2 2 1
alekv
- Colonel -
Next rank: = Colonel = after 270 pointsМодератор форума
4170

Doom Rate: 1.87

Posts quality: +949
Ссылка на пост №764 Отправлено: 09.03.16 18:16:40
Герр Смертоносец:
Через SetActivator(0,AAPTR_PLAYER_GETTARGET), если верить вики.

Чет я не соображу как ее заюзать?
Если я правильно прочитал, эта функция сделает активатором скрипта актора который под курсором\прицелом игрока..
Если так, то запускать скрипт кто должен ?О_О
В идеале хорошо что бы итем сам сапускал скрипт и если он под курсором выводил на экране игрока надписи и чекал кнопки.
Но еще не понял как проверить под курсором или нет,
т.е. что писать в if().. ? Не выспался я наверное, голова не варит =(

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

YURA_111:
Если объект это существо, то:
http://zdoom.org/wiki/A_JumpIfTargetInLOS

А это попробовал, сильно не возился, но мне показалось что оно не учитывает Z высоту.. а так-то вариант хорош, спасибо
1 3 1
Герр Смертоносец
- Warrant Officer -
Next rank: = Warrant Officer = after 67 points
1073

Doom Rate: 1.35

Posts quality: +947
Ссылка на пост №765 Отправлено: 09.03.16 18:39:51
alekv:
Если так, то запускать скрипт кто должен ?О_О

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

 if(SetActivator(0,AAPTR_PLAYER_GETTARGET))
{ 
  блаблаба караганда;
}

Махинация с if и скобочками тут нужна, чтобы скрипт не выполнялся, если под прицелом пусто.
5
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1633
Ссылка на пост №766 Отправлено: 09.03.16 18:42:23
alekv:
Если так, то запускать скрипт кто должен ?О_О

Игрок.
Делаешь скрипт, который в цикле проверяет таргет под курсором. Таргет, вроде бы, должен быть shootable.
Проверяешь с http://zdoom.org/wiki/CheckClass, если совпадает с твоим свитчём, то делаешь обработку (пишешь что надо в центре экрана со смещением).

Радиусгив нафиг не нужен в данном случае. Радиусгив нужен если ты в 3D захочешь отобразить что-то на этом самом интерактивном объекте аля крузис.
2 2 1
alekv
- Colonel -
Next rank: = Colonel = after 270 pointsМодератор форума
4170

Doom Rate: 1.87

Posts quality: +949
Ссылка на пост №767 Отправлено: 09.03.16 18:56:56
Спасибо вам большое, буду что-то делать.
По поводу радиус гиве проще же просто дистанцию чекать? Или это сильнее нагрузит?
3д конечно не нужно, пока что только тестовая комната, если в конечном итоге норм все будет мб и аля кризис не прочь замутить, эффектно так смотрится.

Я вот еще что подумал, а что в таком случае лучше будет, сделать простой ентер скрипт с циклом который постоянно будет чекать кто\что под прицелом
или же сделать что бы итем чекала дистанцию до игрока и если игрок рядом, тогда врубается проверка что под курсором?

Кажется что последнее более затратно.. но хз, есть ли в этом смысл? Просто итем может лежать еще 1 рядом.. да хоть 10 шт. в куче, не вызовет ли проблем
1 3 1
Герр Смертоносец
- Warrant Officer -
Next rank: = Warrant Officer = after 67 points
1073

Doom Rate: 1.35

Posts quality: +947
Ссылка на пост №768 Отправлено: 09.03.16 18:58:53
ZZYZX:
Радиусгив нафиг не нужен в данном случае.

Я придерживаюсь мнения, что зацикленный скрипт это хреновый design pattern. В случае конкретной задачи под конкретный объект он сработает, но если мы строим мегавад с чёрт знает каким количеством подобных объектов и иных SetActivatorTo-фич, это может привести к непредсказуемым конфликтам и разрастанию зацикленного скрипта до непомерных размеров. В ненужное время такие штуки лучше выключать от греха подальше.

Радиусгив я рассматриваю, как громоздкое, но наиболее гибкое и универсальное решение. Ибо во-первых предусмотрено самоотключение, во-вторых для самоотключения не требуется прописывать никакие предохранительные сектора-линии, в-третьих по умолчанию совместимо с мультиплеером.
5
alekv
- Colonel -
Next rank: = Colonel = after 270 pointsМодератор форума
4170

Doom Rate: 1.87

Posts quality: +949
Ссылка на пост №769 Отправлено: 09.03.16 19:37:31
Что-то как-то не хочет работать..
Script "CheckPlayerLOF" ENTER
{
If(SetActivator(0,AAPTR_PLAYER_GETTARGET))//По идее если под курсором пусто выполняться не должно, но выполняется.
	{PrintBold(s:"TEST___1");
		if(CheckActorClass(0,"MediKit1"))//По идее если активатор аптечка, должно выполнятся, но оно выполняется всегда при условии что есть такой актор на карте.
			{PrintBold(s:"rrrrr");}
	}
Delay(1);
Restart;
}

Вот в чем беда? Я накатал так для проверки что будет..
1 3 1
Герр Смертоносец
- Warrant Officer -
Next rank: = Warrant Officer = after 67 points
1073

Doom Rate: 1.35

Posts quality: +947
Ссылка на пост №770 Отправлено: 09.03.16 19:43:36
Есть ощущение, что после рестарта скрипт продолжает рестартиться от имени аптечки.
5
alekv
- Colonel -
Next rank: = Colonel = after 270 pointsМодератор форума
4170

Doom Rate: 1.87

Posts quality: +949
Ссылка на пост №771 Отправлено: 09.03.16 19:54:03
Герр Смертоносец:
Есть ощущение, что после рестарта скрипт продолжает рестартиться от имени аптечки.

Script "CheckPlayerLOF" ENTER
{
	while(1){
If(SetActivator(0,AAPTR_PLAYER_GETTARGET))
	{PrintBold(s:"rrrrr");
	}
else{PrintBold(s:"________");}
Delay(1);
}
}

Да как бы и просто циклом.. результат тот же. Всегда срабатывает PrintBold(s:"rrrrr"); не зависимо есть ли что под курсором или нет.. акторы всякие есть и с shootable и без.. и монстры и не монстры..
Может я что-то не так сделал? Мб там еще что дописать надо где-то?
1 3 1
Герр Смертоносец
- Warrant Officer -
Next rank: = Warrant Officer = after 67 points
1073

Doom Rate: 1.35

Posts quality: +947
Ссылка на пост №772 Отправлено: 09.03.16 22:00:42
Опять та же история. За первый проход цикла активатор вешается на аптечку, и на 1/35 секунды оно рычит. На следующих тактах скрипт размышляет над философским вопросом "куда смотрит аптечка и может ли она вообще на кого-то смотреть"?

Тогда надо в начале каждого такта делать SetActivator(0, AAPTR_PLAYER1). Либо SetActivator(TID), назначив игроку TID.
5
alekv
- Colonel -
Next rank: = Colonel = after 270 pointsМодератор форума
4170

Doom Rate: 1.87

Posts quality: +949
Ссылка на пост №773 Отправлено: 09.03.16 22:12:22
Герр Смертоносец
Все, спасибо большое! Спас меня от изучения векторов =) Я уже серьезно думал самому брать и писать функцию или просить ZZYZX т.к. он вроде понимает эти вещи =)
Хотя все таки придется т.к. взбесила моя беспомощность в расчетах углов взгляда и прочей мути с векторами -_-

Но как оказалось работает оно не так как хотелось бы, причины 2, в целом терпимые..
1 игрок если смотрит вниз в направлении вещи\монстра т.е. себе под ноги, но по сути вещь не видит, скрипт все равно выполняется
2 это то что слишком большой радиус получается, это все дело регулировать нельзя как я понял?
1 3 1
Герр Смертоносец
- Warrant Officer -
Next rank: = Warrant Officer = after 67 points
1073

Doom Rate: 1.35

Posts quality: +947
Ссылка на пост №774 Отправлено: 09.03.16 22:29:33
alekv:
1 игрок если смотрит вниз в направлении вещи\монстра т.е. себе под ноги, но по сути вещь не видит, скрипт все равно выполняется

Это косяк на уровне движка. Здумовский рендер не позволяет смотреть в зенит или в надир. Чем больше наклон камеры, тем сильнее становятся искажения. Из-за этого при больших углах прицел начинает сильно врать по вертикали. Фиксить можно, но через аццкий ад. В гздум такого эффекта быть не должно.

alekv:
2 это то что слишком большой радиус получается, это все дело регулировать нельзя как я понял?

Вряд ли, параметры поинтеров зашиты на уровне движка. Но у мене есть гипотеза, что думовский autoaim влияет на результат. Если так, то его стоит принудительно вырубить через MENUDEF.
5
alekv
- Colonel -
Next rank: = Colonel = after 270 pointsМодератор форума
4170

Doom Rate: 1.87

Posts quality: +949
Ссылка на пост №775 Отправлено: 10.03.16 00:24:43
Герр Смертоносец:
В гздум такого эффекта быть не должно.

Да вот в гоззе как раз и тестил =(
аутоаим в моем случае ни как не влияет, по крайней мере я не заметил изменений с его отключением.


У меня еще вопрос.. по библиотекам
в общем сделал так
Библиотека:
#library "AlekvInventory"
#Include "ZCommon.acs"
тут всякие скрипты.. 

либу скомпилировал, в loadacs ламп прописал все нормально, потом пытаюсь подключить ее в скрипте по F10 скрипт карты получается..
#import "AlekvInventory.acs"
#Include "ZCommon.acs"

Но пишет что не может найти такой файл!!! Делал все как описано в вики Libraries
Чего я только не пробовал, уже замучили меня эти библиотеки, что не так сделал? Ну ппц какой-то сам написал и забыл хД

Они вообще работаю или нет? Попытался посмотреть как в чужих модах либы добавляют.. ну все точно так же сделал, как об стену горох.. не может найти либу которую хочу подключить!
1 3 1
Герр Смертоносец
- Warrant Officer -
Next rank: = Warrant Officer = after 67 points
1073

Doom Rate: 1.35

Posts quality: +947
Ссылка на пост №776 Отправлено: 10.03.16 02:59:53
alekv
Я бы чисто ради профилактики не рекомендовал бы делать названия длиннее 8 букв. Хрен их знает, эти архаичные форматы.

Алсо, вот так выглядит у меня:
#library "germlib"
#include "zcommon.acs"
далее скрипты

Ламп "GERMLIB" с обеих сторон помечен маркерами A_START и A_END,
В LOADACS написано "GERMLIB" и ничего кроме.

Делай по такому же шаблону, например.
5
alekv
- Colonel -
Next rank: = Colonel = after 270 pointsМодератор форума
4170

Doom Rate: 1.87

Posts quality: +949
Ссылка на пост №777 Отправлено: 10.03.16 22:00:20
ZoD
Ну смотри, скачал по тестил, если интересно мое железо
NVidia GeForce GT9500 512мб
Оперативка ddr2 5гб
Проц amd 2 ядра частотой 2.7мг каждое.
win7 запускал на гоззе 2х.
Собс-но все работает нормально за исключением участка в который игрок телепортируется из поезда\вагона или что это..
Туда куда телепортнуло, абсолютно не играбельно даже на мин. настройках гоззы, огромная карта!

А теперь если интересно не большие советы по оптимизации или просто..:
1 рендер 3д моделей надо вырубать когда игрок дальше чем 2048 мап пикселей или что-то в этом роде..
2 не присматривался, но если есть линия горизонт актион, то лучше отказаться, она очень прожорлива.
3 отражающая вода, не пробовал, но мб ее можно выключать скриптом? Это было бы к стате..
4 не обязательно делать траву из 3д моделей, Total Chaos тому пример.. там трава 2д спрайты, а смотрится просто сногшибательно.
5 не делать много 3д полов\секторов! Где можно лучше юзать thing. ХЗ почему, но как-то не так они лагучи.
6 динлайты тоже над вырубать когда ГГ далеко..
7 я не знаю поможет, нет, но мб стоит попробовать добавить текстуры в прекеш.. у меня лично не получилось, но я особо и не пытался.
8 Настройки выкручивать почти на мин.
9 Делать именно открытое пространство в дум == лаги, можно перекрывать часть карты горой, т.е. не делать большие котлованы аля серьезсем, а ставить перегородки из гор слоупов, значительно уменьшит лаги..
Вот и все =) Мб что забыл..
1 3 1
Ornstein
- UAC Gunner -
Next rank: = UAC Gunner = after 18 points
42

Doom Rate: 1.91

Posts quality: +2
Ссылка на пост №778 Отправлено: 13.03.16 17:26:27
Думеры подскажите мне пожалуйста, какие операции нужно выполнить для переноса оружия с одного мода в другой? Я себе хочу перенести 4 и 6 стволки из complex-doom.v26a2 в брутал дум.
LEX SAFONOV
= Sergeant Major =
Next rank: UAC Sergeant Major after 79 points
601

Doom Rate: 1.5

Posts quality: +295
Ссылка на пост №779 Отправлено: 13.03.16 18:16:58
Ornstein:
Думеры подскажите мне пожалуйста, какие операции нужно выполнить для переноса оружия с одного мода в другой? Я себе хочу перенести 4 и 6 стволки из complex-doom.v26a2 в брутал дум.

Сперва-наперво - знание декорейта. Далее - умение обращаться с данными в думовских архивах.
Вынимаешь спрайты оружий\код оружий из комплекса в брутал-дум, естественно учитывая, с чем оружия взаимодействуют по ходу дела(это могут быть не только монстры, но и ещё хитсканы\кровь\дым). Меняешь названия оружий в KEYCONF(если там есть), либо в плеер-классе. Опять же - знания декорейта.
Ornstein
- UAC Gunner -
Next rank: = UAC Gunner = after 18 points
42

Doom Rate: 1.91

Posts quality: +2
Ссылка на пост №780 Отправлено: 13.03.16 18:20:11
LEX SAFONOV:
Сперва-наперво - знание декорейта.

С этого места пожалуйста поподробней или если можно ссылку на мануалы вики.
LEX SAFONOV:
либо в плеер-классе

Это что такое?
Страница 39 из 200Перейти наверх Пред.  1, 2, 3 ... 38, 39, 40 ... 198, 199, 200  След.
   Список разделов - Флуд и устаревшие темы - Тема для новичков. Вопросы по маппингу/моддингу - любые!