Автор | Сообщение |
YURA_111 UAC Sergeant Major
 | 768 |
 Doom Rate: 1.98 Posts quality: +136 |
|
| |
Герр Смертоносец - Warrant Officer -
 | 1073 |
 Doom Rate: 1.35 Posts quality: +947 |
Отправлено: 09.03.16 16:16:27 | |
|
alekv Через SetActivator(0,AAPTR_PLAYER_GETTARGET), если верить вики. |
|
|
5 |
 |
|
| |
ZZYZX - UAC Commissar -
 |  | 6284 |
 Doom Rate: 1.65 Posts quality: +1633 |
Отправлено: 09.03.16 17:22:08 | |
|
YURA_111: | Почему же не добьешься - еще как добьешься - AAPTR_TARGET флаг ты что не заметил ? - это и есть цель. Тут просто главное правильно формулу указать, которой я и не знаю... |
Чувак, ты берёшь свой health, а назначаешь таргету, однако.
+1 к решению Смертоносца. |
|
|
2 |
2 |
1 |
 |
|
| |
alekv - Colonel -
 |  | 4170 |
 Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 09.03.16 18:16:40 | |
|
Герр Смертоносец: | Через SetActivator(0,AAPTR_PLAYER_GETTARGET), если верить вики. |
Чет я не соображу как ее заюзать? Если я правильно прочитал, эта функция сделает активатором скрипта актора который под курсором\прицелом игрока.. Если так, то запускать скрипт кто должен ?О_О В идеале хорошо что бы итем сам сапускал скрипт и если он под курсором выводил на экране игрока надписи и чекал кнопки. Но еще не понял как проверить под курсором или нет, т.е. что писать в if().. ? Не выспался я наверное, голова не варит =(
Добавлено спустя 1 минуту 4 секунды:
А это попробовал, сильно не возился, но мне показалось что оно не учитывает Z высоту.. а так-то вариант хорош, спасибо |
|
|
1 |
3 |
1 |
 |
|
| |
Герр Смертоносец - Warrant Officer -
 | 1073 |
 Doom Rate: 1.35 Posts quality: +947 |
Отправлено: 09.03.16 18:39:51 | |
|
alekv: | Если так, то запускать скрипт кто должен ?О_О |
Запускать должен игрок. Как именно - уже вопрос отдельный. Можно по хоткею. Можно тупо зациклить скрипт. Можно включать зацикливание, когда игрок находится в секторе. Мой вариант - чтобы интересуемый объект непрестанно бы делал A_RadiusGive и в случае появления игрока в небольшом радиусе давал бы условный итем, которой при подбирании активировал бы скрипт от имени игрока.
if(SetActivator(0,AAPTR_PLAYER_GETTARGET))
{
блаблаба караганда;
}
Махинация с if и скобочками тут нужна, чтобы скрипт не выполнялся, если под прицелом пусто. |
|
|
5 |
 |
|
| |
ZZYZX - UAC Commissar -
 |  | 6284 |
 Doom Rate: 1.65 Posts quality: +1633 |
Отправлено: 09.03.16 18:42:23 | |
|
alekv: | Если так, то запускать скрипт кто должен ?О_О |
Игрок. Делаешь скрипт, который в цикле проверяет таргет под курсором. Таргет, вроде бы, должен быть shootable. Проверяешь с http://zdoom.org/wiki/CheckClass, если совпадает с твоим свитчём, то делаешь обработку (пишешь что надо в центре экрана со смещением).
Радиусгив нафиг не нужен в данном случае. Радиусгив нужен если ты в 3D захочешь отобразить что-то на этом самом интерактивном объекте аля крузис. |
|
|
2 |
2 |
1 |
 |
|
| |
alekv - Colonel -
 |  | 4170 |
 Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 09.03.16 18:56:56 | |
|
Спасибо вам большое, буду что-то делать. По поводу радиус гиве проще же просто дистанцию чекать? Или это сильнее нагрузит? 3д конечно не нужно, пока что только тестовая комната, если в конечном итоге норм все будет мб и аля кризис не прочь замутить, эффектно так смотрится.
Я вот еще что подумал, а что в таком случае лучше будет, сделать простой ентер скрипт с циклом который постоянно будет чекать кто\что под прицелом или же сделать что бы итем чекала дистанцию до игрока и если игрок рядом, тогда врубается проверка что под курсором?
Кажется что последнее более затратно.. но хз, есть ли в этом смысл? Просто итем может лежать еще 1 рядом.. да хоть 10 шт. в куче, не вызовет ли проблем |
|
|
1 |
3 |
1 |
 |
|
| |
Герр Смертоносец - Warrant Officer -
 | 1073 |
 Doom Rate: 1.35 Posts quality: +947 |
Отправлено: 09.03.16 18:58:53 | |
|
ZZYZX: | Радиусгив нафиг не нужен в данном случае. |
Я придерживаюсь мнения, что зацикленный скрипт это хреновый design pattern. В случае конкретной задачи под конкретный объект он сработает, но если мы строим мегавад с чёрт знает каким количеством подобных объектов и иных SetActivatorTo-фич, это может привести к непредсказуемым конфликтам и разрастанию зацикленного скрипта до непомерных размеров. В ненужное время такие штуки лучше выключать от греха подальше.
Радиусгив я рассматриваю, как громоздкое, но наиболее гибкое и универсальное решение. Ибо во-первых предусмотрено самоотключение, во-вторых для самоотключения не требуется прописывать никакие предохранительные сектора-линии, в-третьих по умолчанию совместимо с мультиплеером. |
|
|
5 |
 |
|
| |
alekv - Colonel -
 |  | 4170 |
 Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 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 -
 | 1073 |
 Doom Rate: 1.35 Posts quality: +947 |
Отправлено: 09.03.16 19:43:36 | |
|
Есть ощущение, что после рестарта скрипт продолжает рестартиться от имени аптечки. |
|
|
5 |
 |
|
| |
alekv - Colonel -
 |  | 4170 |
 Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 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 -
 | 1073 |
 Doom Rate: 1.35 Posts quality: +947 |
Отправлено: 09.03.16 22:00:42 | |
|
Опять та же история. За первый проход цикла активатор вешается на аптечку, и на 1/35 секунды оно рычит. На следующих тактах скрипт размышляет над философским вопросом "куда смотрит аптечка и может ли она вообще на кого-то смотреть"?
Тогда надо в начале каждого такта делать SetActivator(0, AAPTR_PLAYER1). Либо SetActivator(TID), назначив игроку TID. |
|
|
5 |
 |
|
| |
alekv - Colonel -
 |  | 4170 |
 Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 09.03.16 22:12:22 | |
|
Герр Смертоносец Все, спасибо большое! Спас меня от изучения векторов Я уже серьезно думал самому брать и писать функцию или просить ZZYZX т.к. он вроде понимает эти вещи  Хотя все таки придется т.к. взбесила моя беспомощность в расчетах углов взгляда и прочей мути с векторами -_-
Но как оказалось работает оно не так как хотелось бы, причины 2, в целом терпимые.. 1 игрок если смотрит вниз в направлении вещи\монстра т.е. себе под ноги, но по сути вещь не видит, скрипт все равно выполняется 2 это то что слишком большой радиус получается, это все дело регулировать нельзя как я понял? |
|
|
1 |
3 |
1 |
 |
|
| |
Герр Смертоносец - Warrant Officer -
 | 1073 |
 Doom Rate: 1.35 Posts quality: +947 |
Отправлено: 09.03.16 22:29:33 | |
|
alekv: | 1 игрок если смотрит вниз в направлении вещи\монстра т.е. себе под ноги, но по сути вещь не видит, скрипт все равно выполняется |
Это косяк на уровне движка. Здумовский рендер не позволяет смотреть в зенит или в надир. Чем больше наклон камеры, тем сильнее становятся искажения. Из-за этого при больших углах прицел начинает сильно врать по вертикали. Фиксить можно, но через аццкий ад. В гздум такого эффекта быть не должно.
alekv: | 2 это то что слишком большой радиус получается, это все дело регулировать нельзя как я понял? |
Вряд ли, параметры поинтеров зашиты на уровне движка. Но у мене есть гипотеза, что думовский autoaim влияет на результат. Если так, то его стоит принудительно вырубить через MENUDEF. |
|
|
5 |
 |
|
| |
alekv - Colonel -
 |  | 4170 |
 Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 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 -
 | 1073 |
 Doom Rate: 1.35 Posts quality: +947 |
Отправлено: 10.03.16 02:59:53 | |
|
alekv Я бы чисто ради профилактики не рекомендовал бы делать названия длиннее 8 букв. Хрен их знает, эти архаичные форматы.
Алсо, вот так выглядит у меня:
#library "germlib"
#include "zcommon.acs"
далее скрипты Ламп "GERMLIB" с обеих сторон помечен маркерами A_START и A_END, В LOADACS написано "GERMLIB" и ничего кроме.
Делай по такому же шаблону, например. |
|
|
5 |
 |
|
| |
alekv - Colonel -
 |  | 4170 |
 Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 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 -
 | 42 |
 Doom Rate: 1.91 Posts quality: +2 |
Отправлено: 13.03.16 17:26:27 | |
|
Думеры подскажите мне пожалуйста, какие операции нужно выполнить для переноса оружия с одного мода в другой? Я себе хочу перенести 4 и 6 стволки из complex-doom.v26a2 в брутал дум. |
|
|
| |
LEX SAFONOV = Sergeant Major =
 | 601 |
 Doom Rate: 1.5 Posts quality: +295 |
Отправлено: 13.03.16 18:16:58 | |
|
Ornstein: | Думеры подскажите мне пожалуйста, какие операции нужно выполнить для переноса оружия с одного мода в другой? Я себе хочу перенести 4 и 6 стволки из complex-doom.v26a2 в брутал дум. |
Сперва-наперво - знание декорейта. Далее - умение обращаться с данными в думовских архивах. Вынимаешь спрайты оружий\код оружий из комплекса в брутал-дум, естественно учитывая, с чем оружия взаимодействуют по ходу дела(это могут быть не только монстры, но и ещё хитсканы\кровь\дым). Меняешь названия оружий в KEYCONF(если там есть), либо в плеер-классе. Опять же - знания декорейта. |
|
|
| |
Ornstein - UAC Gunner -
 | 42 |
 Doom Rate: 1.91 Posts quality: +2 |
Отправлено: 13.03.16 18:20:11 | |
|
LEX SAFONOV: | Сперва-наперво - знание декорейта. |
С этого места пожалуйста поподробней или если можно ссылку на мануалы вики.
LEX SAFONOV: | либо в плеер-классе |
Это что такое? |
|
|
| |