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

Doom Rate: 2.18

Posts quality: +218
Ссылка на пост №101 Отправлено: 12.07.19 11:32:08
N00b2015
Ого! спасибо большое, что ты расписал, так подробно, что происходит в цикле, у меня немного искаженное было представление.

Cледуя этой логике получилось двигать клетки и налево :nyam:

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

Doom Rate: 1.82

Posts quality: +807
Ссылка на пост №102 Отправлено: 13.07.19 03:08:54
Так, коль скоро идёт активный движ по АЦС то пожалуй тоже спрошу про оный.

Нужен скрипт который активируется игроком и при этом раздаёт некий итем ВСЕМ монстрам и итемам (оружию, патронам, ключам, аптечкам, бронькам, пауэрапам) на карте.
1 9 1
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №103 Отправлено: 13.07.19 11:23:46
Void Weaver
А чем не подходит стандартный метод с A_RadiusGive с флагами RGF_MONSTERS | RGF_ITEMS?
Если нужен именно ACS-скрипт, выдавай в нём игроку CustomInventory, которая будет вызывать этот A_RadiusGive.
1 2
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +807
Ссылка на пост №104 Отправлено: 13.07.19 12:34:12
Проблема в том что сейчас механика как раз завязана на A_RadiusGive с соотв. флагами и активируется именно непосредственно из кастом-игрока. :D Но если верить вики то радиус действия ф-ции лимитирован жалкими 16К, т. е. мой алгоритм не будет пахать на картах больших размеров чем 16К по максимальной диагонали.

Честно говоря я не проверял предел эффективного радиуса _РадиусГив, хотя бы потому что не знаю как это можно проверить. В любом случае на всякий пожарный хотелось бы перенести эту часть на скрипт глобального охвата. Но не на OPEN\ENTER поскольку скрипт должен выполняться многократно.
1 9 1
SSV_Victoryan
UAC Sergeant Major
Next rank: Chief Petty Officer after 41 points
809

Doom Rate: 2.18

Posts quality: +276
Ссылка на пост №105 Отправлено: 13.07.19 15:22:00
Привет всем. И снова простецкий вопрос, на который я не могу найти ответ)

Перерыл думвики и нашёл только SetLineTexture для линии. Ни как не могу найти подобный спешл(для сектора) для замены текстуры на полу или потолке. Напишите его пожалуйста, если есть такой в природе.
2
Shadowman
= UAC Marshal =
Next rank: UAC General after 99 points
8101

Doom Rate: 2.08

Posts quality: +1814
Ссылка на пост №106 Отправлено: 13.07.19 16:54:05
SSV_Victoryan пишет:
Ни как не могу найти подобный спешл(для сектора) для замены текстуры на полу или потолке.

Ну как это не можешь? ChangeFloor тебе в помощь.

Рейтинг сообщения: +2, отметил(и): SSV_Victoryan, Void Weaver
1 7 2
SSV_Victoryan
UAC Sergeant Major
Next rank: Chief Petty Officer after 41 points
809

Doom Rate: 2.18

Posts quality: +276
Ссылка на пост №107 Отправлено: 13.07.19 17:08:09
Shadowman пишет:
Ну как это не можешь? ChangeFloor тебе в помощь.

я искал типо этого:
SetFloorTexture
И с потолком та же беда)))) кто же знал что названия настолько перепутаны. Не догадался на Change пробить
Благодарю!
2
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +807
Ссылка на пост №108 Отправлено: 14.07.19 05:53:41
FoxPlays пишет:
1. Как отключить для всех карт в ваде (при помощи acs, декорейта или зскрипта) покачивание камеры?
Как вариант можно тупо выставить Player.ViewBob 0 кастомному игроку.

FoxPlays пишет:
Void Weaver пишет:
измерив дистанцию непосредственно между игроком и целью в прицеле и записав это значение как множитель урона прямо в A_FireBullets.

А как это сделать на ACS если не секрет? )
На самом деле тут даже скрипты не нужны, всё элементарно делается по чудесному указателю AAPTR_PLAYER_GETTARGET. Формулы пишем прямо в _ФайрБуллетс без кастом-пуффов:
Actor PistFP : Pistol replaces Pistol
{
+WEAPON.NOAUTOAIM
Weapon.SlotNumber 2
Weapon.SlotPriority 1
States
{
Fire:
PISG A 4
//PISG B 0 A_FireBullets(5.6,0,1,1000/(GetDistance(1,AAPTR_PLAYER_GETTARGET)-8)+1,"BulletPuff",FBF_USEAMMO|FBF_NORANDOMPUFFZ|FBF_NORANDOM) //Урон растёт по мере уменьшения дистанции до цели
PISG B 0 A_FireBullets(5.6,0,1,(GetDistance(1,AAPTR_PLAYER_GETTARGET)-8)*0.1+5,"BulletPuff",FBF_USEAMMO|FBF_NORANDOMPUFFZ|FBF_NORANDOM) //Урон растёт по мере увеличения дистанции до цели
PISG B 0 A_PlaySound("weapons/pistol",1)
PISG B 6 A_GunFlash
PISG C 4
PISG B 5 A_ReFire
Goto Ready
}
}


Добавлено спустя 11 часов 25 минут 59 секунд:

===========
===========
ВОПРОС:

Мапперы, каков максимально возможный размер карты с учётом монстр-контейнеров секторов обычно размещаемых за пределами игрового пространства?
Есть ли какой-нибудь способ получить значение максимальной стороны карты?

Рейтинг сообщения: +1, отметил(и): FoxPlays
1 9 1
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №109 Отправлено: 14.07.19 19:24:41
Void Weaver
А ты скачай билдер и проверь.
У меня получилось в UDMF сделать карту размерами 256 * 65535 (65535 = 2^16 - 1). Работает, и вроде без багов. Больше 65536 карта (под GZDoom) размер иметь точно не может, все три координаты в GZDoom ограничены по модулю 32768. Смотри исходники.
Мапперы стараются не делать размер карты большим, чем 32768, потому что это вызывает ошибки, связанные всё с тем же переполнением.
Контейнеры --- это точно такие же секторы, как и "игровое пространство".
С чего ты взял, кстати, что 16 тысяч, указанные в статье, --- это ограничение?
Void Weaver пишет:
радиус действия ф-ции лимитирован жалкими 16К

На вики написано "A good range for the entirety of the map would be 16383", то есть, это значение было бы неплохой априорной догадкой (учитывая соглашение о 32768). Но в коде A_RadiusGive я не вижу ничего похожего.
Я бы попробовал взять 65535. Потом, если будут проблемы, заменить на 32767 и, как у них в статье, телепортировать актора-проверяющего в (0, 0, 0) (хотя эта точка может легко оказаться вне игрового пространства...)
1 2
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +807
Ссылка на пост №110 Отправлено: 14.07.19 20:20:16
Да, я уже выяснил, так что значение радиуса более 113к не имеет смысла. И да, заметка на вики абсолютная бессмысленная имхота, хотя оказывается не один я так заблуждался.
За соус отдельное спасибо. :)

Но всё-таки скрипт лучше подойдёт для массовой выдачи итема по всей карте, ибо при огромном количестве получателей итема (все монстры и предметы) каждый лишний мапюнит _РадиусГив некисло снижает фпс. Так что если в ваде одна карта максимального размера, а другая крошечная но густонаселённая например, то избыточный радиус функции будет только вхолостую отъедать ресурсы на маленькой карте. А если при получении итема спаунится ещё что-то (как в моём случае), то это вообще светопреставление.
1 9 1
Zeberpal_98
Chief Petty Officer
Next rank: Chief Petty Officer after 45 points
895

Doom Rate: 2.18

Posts quality: +218
Ссылка на пост №111 Отправлено: 15.07.19 22:31:30
Вопрос: Выстреливается кастомный проджектайл через АЦС SpawnProjectile.
Можно ли у уже летящего декорейт-шарика каким-то способом менять скорость?
1 3
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +807
Ссылка на пост №112 Отправлено: 15.07.19 23:00:14
Да, A_ChangeVelocity позволяет динамично корректировать скорость акторов, включая даже капризные FastProjectile.
Для "фиксированного" линейного ускорения\замедления также можно использовать более примитивную A_ScaleVelocity.
Имей в виду что A_SetSpeed НЕ РАБОТАЕТ для не-сикер снарядов!

Рейтинг сообщения: +1, отметил(и): Zeberpal_98
1 9 1
Zeberpal_98
Chief Petty Officer
Next rank: Chief Petty Officer after 45 points
895

Doom Rate: 2.18

Posts quality: +218
Ссылка на пост №113 Отправлено: 15.07.19 23:08:17
Void Weaver
Спасибо, попробую!
1 3
Doomgay1999
- Corporal -
Next rank: = Corporal = after 6 points
94

Doom Rate: 2

Posts quality: -1
Ссылка на пост №114 Отправлено: 16.07.19 09:45:57
А где можно найти soundfont DOOM 64EX?
SSV_Victoryan
UAC Sergeant Major
Next rank: Chief Petty Officer after 41 points
809

Doom Rate: 2.18

Posts quality: +276
Ссылка на пост №115 Отправлено: 16.07.19 10:41:20
И снова здравствуйте. Сложная задача.
Есть много потолков связанных друг с другом только тегом, после их запуска в виде медленных прессов и остановки потолки оказываются на разных высотах, из-за давки монстров.
Все потолки склеить во едино нельзя, и быстрый пресс не подходит, который не сбивает высоту при давке(особенности строения карты карты).

Мне нужно как-то выровнять все потолки после остановки на одну координату, допустим глобальную координату карты 512 или как-то так. При этом потолки могут оказаться или выше или ниже координаты 512. Как такое можно провернуть подскажите пожалуйста?
2
Shadowman
= UAC Marshal =
Next rank: UAC General after 99 points
8101

Doom Rate: 2.08

Posts quality: +1814
Ссылка на пост №116 Отправлено: 16.07.19 12:00:43
SSV_Victoryan
А Этот экшен не подойдет?
1 7 2
SSV_Victoryan
UAC Sergeant Major
Next rank: Chief Petty Officer after 41 points
809

Doom Rate: 2.18

Posts quality: +276
Ссылка на пост №117 Отправлено: 16.07.19 12:20:25
Shadowman пишет:
А Этот экшен не подойдет?

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

Вот скрипт, не поднимает потолки после остановки прессов:
Скрытый текст:

script 20 (void)
{  if (doorvar3 == 0)
   {  Generic_Floor(90, 8, 500, 0, 0);
      Ceiling_CrushStop(87);
      Ceiling_CrushStop(89);
      Ceiling_CrushStop(112);
      delay(64);
      Ceiling_MoveToValue(87, 16, 508, 0);
      Ceiling_MoveToValue(89, 16, 508, 0);
      Ceiling_MoveToValue(112, 16, 508, 0);
      doorvar3 = 1;
   }
}

script 23 (void)
{  Ceiling_CrushAndRaiseDist(87, 8, 16, 20, 0);
   Ceiling_CrushAndRaiseDist(89, 8, 16, 20, 0);
   Ceiling_CrushAndRaiseDist(112, 8, 16, 20, 0);
   Thing_Spawn(98, 6, 192, 0);
   Thing_Spawn(125, 111, 0, 0);
   Thing_Spawn(131, 1019, 0, 0);
}

2
Zeberpal_98
Chief Petty Officer
Next rank: Chief Petty Officer after 45 points
895

Doom Rate: 2.18

Posts quality: +218
Ссылка на пост №118 Отправлено: 16.07.19 12:44:07
Пытаюсь дать актору A предмет B, когда в этот актор А попадает пуля, и если у него уже есть другой предмет С. Модифицирую успешный код Void Weaver'а, где было условие "если у актора А есть флаг +ISMONSTER".

так выглядели важные строчки у успешного кода:
 // актор пуффа, который попадал в монстра
//[...]
XDeath:
TNT1 A 0
TNT1 A 0 A_CheckFlag("ISMONSTER","GiveSuccessMark",AAPTR_TRACER)
Stop
GiveSuccessMark:
TNT1 A 0 A_GiveInventory("HitShot",1,AAPTR_TRACER)
//[...]


В моей задачи пришлось сделать нового актора, для теста просто взял актор Демона и приписал там

//[...] к демона
  Spawn:
    SARG AB 10 A_Look
	SARG A 0 A_SetInventory("ISENEMY", 1, AAPTR_DEFAULT, FALSE)	
    Loop
//[...]


Actor ISENEMY : Inventory
{
Inventory.MaxAmount 1
} 


//[...]            в  акторе пуффа, который попадает в монстра
XDeath:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("ISENEMY", 1, "GiveSuccessMark",AAPTR_TRACER)
Stop
GiveSuccessMark:
TNT1 A 0 A_GiveInventory("HitShot",1,AAPTR_TRACER)
//[...]


Не работает, пробовал и A_giveInventory, менять актор пойнтеры, все равно. Может я неправильно даю монстру предмет, это делается иначе?
1 3
Shadowman
= UAC Marshal =
Next rank: UAC General after 99 points
8101

Doom Rate: 2.08

Posts quality: +1814
Ссылка на пост №119 Отправлено: 16.07.19 13:26:05
SSV_Victoryan пишет:
не поднимает потолки после остановки прессов:

Странно, почему не работает.
Возможно, многое зависит от конфигурации карты. Если позволяет геометрия, попробуй обвести каждый потолок-давилку тонким сектором в 1-2 маппикселя ширины, ему поставь нужную высоту, а экшен поменяй на Ceiling_RaiseToNearest.
1 7 2
SSV_Victoryan
UAC Sergeant Major
Next rank: Chief Petty Officer after 41 points
809

Doom Rate: 2.18

Posts quality: +276
Ссылка на пост №120 Отправлено: 16.07.19 13:40:03
Shadowman пишет:
Странно, почему не работает.
Возможно, многое зависит от конфигурации карты. Если позволяет геометрия, попробуй обвести каждый потолок-давилку тонким сектором в 1-2 маппикселя ширины, ему поставь нужную высоту, а экшен поменяй на Ceiling_RaiseToNearest.

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

Пробовал по всякому потолками управлять после запуска их как прессов, не двигаются, даже если Ceiling_CrushStop был запущен.
2
Страница 6 из 63Перейти наверх Пред.  1, 2, 3 ... 5, 6, 7 ... 61, 62, 63  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!-2