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

Doom Rate: 2.18

Posts quality: +276
Ссылка на пост №2641 Отправлено: 16.09.17 22:46:03
JSO x:
Должен. Я только что проверил.
Если не нужно -- добавляешь к каждому "XDeath: <оригинальные стейты>", на последнем вместо "-1" -- положительное число. И "Wait" в конце.


Разве должен? Ну значит у меня не будет =D проверил сработало.

По поводу воскрешения обоих видов зомбей. Я тестил на 2й карте а там стояли оригинальные зомби, поскольку ты не прописал в декоре замену старых на новых простых зомбей, дописал в коде реплейс и теперь кАрч оживляет только кЗомби.

Гляжу пока я тестил ты опять что-то собрался в коде менять?

А это для палитры спрайтов нужно? (в коде увидел)
Скрытый текст:

Translation "48:79=80:111", "236:239=94:102", "210:216=83:91", "168:180=224:231", "181:191=160:167"

2
JSO x
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 142 points
1298

Doom Rate: 2.29

Posts quality: +698
Ссылка на пост №2642 Отправлено: 16.09.17 23:02:17
SSV_Victoryan:
Гляжу пока я тестил ты опять что-то собрался в коде менять?

Да нет, это так, косметические улучшения. Но на всякий случай можно дописать.

SSV_Victoryan:
А это для палитры спрайтов нужно? (в коде увидел)

Нет, просто трансляция (замена) части палитры. Пригождается, если понадобились перекрашенные спрайты, как здесь, например -- нужно же как-то "кошмарных" от обыкновенных отличать?
Единственное, где не перекрашивает -- на спрайтах оружия от первого лица.
2 7 1
SSV_Victoryan
UAC Sergeant Major
Next rank: Chief Petty Officer after 41 points
809

Doom Rate: 2.18

Posts quality: +276
Ссылка на пост №2643 Отправлено: 16.09.17 23:06:52
JSO x:
Нет, просто трансляция (замена) части палитры. Пригождается, если нужны перекрашенные спрайты тех же монстров, как здесь, например -- нужно же как-то "кошмарных" от обыкновенных отличать?


Прописал бы эти две строки в монстрах и всё:
renderstyle subtract
Alpha 0.7

Эта штука перекрашивает спрайты монстра под стиль кошмарного спектра из соневского дума, но на мой взгляд немного кривовато. Лучше всего спрайты в ручную обработать в граф редакторе и загрузить в вад.
Если изменишь код то пиши, на данный момент для теста я немного поменял твой, но как ты сказал в "косметических целях":

Скрытый текст:

Actor HOTDZombie : Zombieman replaces Zombieman //6553
{ States
{
Death:
POSS H 5
POSS I 5 A_Scream
POSS J 0 A_DropItem( "Clip" )
POSS J 0 A_UnsetShootable
POSS J 5 A_UnsetSolid
POSS K 5
Death.Wait:
POSS L 1
POSS L 0 A_CheckProximity( "Death.HelpMe", "Archvile", 64 )
Loop
Death.HelpMe:
POSS L 1 CanRaise A_CheckProximity( "Death.Wait", "NmArchvile", 64 )
POSS L 0 CanRaise A_CheckProximity( "Death.HelpMe", "Archvile", 64 )
Goto Death.Wait
XDeath:
POSS M 5
POSS N 5 A_XScream
POSS O 5 A_NoBlocking
POSS PQRST 5
POSS U -1
Wait
}
}

Actor NmZombie : Zombieman 6554
{ renderstyle subtract
Alpha 0.7
States
{
Death:
POSS H 5
POSS I 5 A_Scream
POSS J 0 A_DropItem( "Clip" )
POSS J 0 A_UnsetShootable
POSS J 5 A_UnsetSolid
POSS K 5
Death.Wait:
POSS L 1
POSS L 0 A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
Loop
Death.HelpMe:
POSS L 1 CanRaise A_CheckProximity( "Death.Wait", "Archvile", 64 )
POSS L 0 CanRaise A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
Goto Death.Wait
XDeath:
POSS M 5
POSS N 5 A_XScream
POSS O 5 A_NoBlocking
POSS PQRST 5
POSS U -1
Wait
}
}

Actor NmArchvile : Archvile 6555
{ renderstyle subtract
Alpha 0.7
}



Кстати "POSS L 0 CanRaise A_CheckProximity( "Death.HelpMe", "Archvile", 64 )" там где 64 это дальность воскрешения?
2
JSO x
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 142 points
1298

Doom Rate: 2.29

Posts quality: +698
Ссылка на пост №2644 Отправлено: 16.09.17 23:14:15
SSV_Victoryan:
renderstyle subtract
Alpha 0.7

Спасибо, не знал.

SSV_Victoryan:
POSS U -1
Wait

Здесь ошибка вылезать будет -- арч смотрит на "-1" и думает, что монстра можно воскресить. Там любое положительное число нужно -- хоть 643012, чтобы арчвайл считал данный стейт невоскрешаемым.

SSV_Victoryan:
там где 64 это дальность воскрешения?

Примерная дальность воскрешения, на глаз прикинул, если честно.
32 или 128, ясно, отпадают, то есть 64 -- самое подходящее из степеней двойки.
2 7 1
SSV_Victoryan
UAC Sergeant Major
Next rank: Chief Petty Officer after 41 points
809

Doom Rate: 2.18

Posts quality: +276
Ссылка на пост №2645 Отправлено: 16.09.17 23:25:31
JSO x:
Здесь ошибка вылезать будет -- арч смотрит на "-1" и думает, что монстра можно воскресить. Там любое положительное число нужно -- хоть 643012, чтобы арчвайл считал данный стейт невоскрешаемым.

Кстати я и не заметил что не доглядел твой вариант:
XDeath:
POSS M 5
POSS N 5 A_XScream
POSS O 5 A_NoBlocking
POSS PQRST 5
POSS U 900
Wait
Тем не менее тест пройдён, арч не воскресил разорванного и гоза фигу не показала. Тогда не знаю но переправлю на 900.

Рейтинг сообщения: +1, отметил(и): JSO x
2
theleo_ua
= Colonel =
Next rank: - Commissar - after 258 points
4632

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №2646 Отправлено: 17.09.17 09:25:10
JSO x:
Однако все jump'ы делаются непосредственно после того, как они будут выполнены.


Здесь не понял. Ты имеешь в виду, что сначала пройдет 1 тик с CanRaise а потом сделается джамп?

JSO x:
Нет, просто трансляция (замена) части палитры. Пригождается, если понадобились перекрашенные спрайты, как здесь, например -- нужно же как-то "кошмарных" от обыкновенных отличать?
Единственное, где не перекрашивает -- на спрайтах оружия от первого лица.


мне кажется RenderStyle Stencil / StencilColor Black проще сделать для таких тестов (ну или какой-нибудь другой рендерстайл)

JSO x:
32 или 128, ясно, отпадают, то есть 64 -- самое подходящее из степеней двойки.


а почему дальность воскрешения арча обязательно должна быть степенью двойки?
3 1
Mud
- Warrant Officer -
Next rank: = Warrant Officer = after 68 points
1072

Doom Rate: 1.97

Posts quality: +699
Ссылка на пост №2647 Отправлено: 17.09.17 10:38:20
Хотел сделать порталы с помощью Sector Set Portal, но что-то идет не так. Может кто-то сможет объяснить, что именно?
https://www.dropbox.com/s/s04hwqcha8xgxec/MAP01.wad?dl=0
UDMF.
3 1
StormCatcher77
- Captain -
Next rank: = Captain = after 142 points
2198

Doom Rate: 4.43

Posts quality: +1222
Ссылка на пост №2648 Отправлено: 17.09.17 13:16:18
Serious_MOod
У тебя не хватает ещё двух линий в секторе, который должен быть сверху. В твоём случае можно просто скопировать линии из первого сектора во второй. Главное, расположить их относительно линий верхнего сектора также как они расположены в нижнем. Всё, что нужно сделать дальше, это поменять у линий в верхнем секторе значение параметра Misc на противоположное (с 1 на 0 и наоборот).

Вот: http://dropmefiles.com/SP64S

Рейтинг сообщения: +2, отметил(и): Mud, JSO x
1 4 32
JSO x
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 142 points
1298

Doom Rate: 2.29

Posts quality: +698
Ссылка на пост №2649 Отправлено: 17.09.17 13:23:14
theleo_ua:
Здесь не понял. Ты имеешь в виду, что сначала пройдет 1 тик с CanRaise а потом сделается джамп?

Нет. Сначала проверится jump, если да, то перейдёт по указателю, если нет, то проиграется анимация по количеству тиков.

══════════════════
theleo_ua:
мне кажется RenderStyle Stencil / StencilColor Black проще сделать для таких тестов (ну или какой-нибудь другой рендерстайл)

JSO x:
Спасибо, не знал.


══════════════════
theleo_ua:
а почему дальность воскрешения арча обязательно должна быть степенью двойки?

Любят программисты "квадратные" числа -- степени двойки. По себе знаю.
Из этого вывод, что арч воскрешает либо на 32, либо на 64, либо на 128. На правду похож лишь 64.
Но это моё мнение, я не изучал этот вопрос. Могу ошибаться.
2 7 1
VladGuardian
= Commissar =
Next rank: - UAC Commissar - after 263 points
5537

Doom Rate: 1.28

Posts quality: +1899
Ссылка на пост №2650 Отправлено: 17.09.17 21:53:35
theleo_ua:
а почему дальность воскрешения арча обязательно должна быть степенью двойки?
JSO x:
Любят программисты "квадратные" числа -- степени двойки. По себе знаю.

Не только в этом дело.
32, 64 (или любая степень двойки) легко представимы как правильная доля от 256, а вот 100 - нет. ))
Именно поэтому мы и любим такие числа.

Рейтинг сообщения: +1, отметил(и): JSO x
4 10 23
SSV_Victoryan
UAC Sergeant Major
Next rank: Chief Petty Officer after 41 points
809

Doom Rate: 2.18

Posts quality: +276
Ссылка на пост №2651 Отправлено: 18.09.17 09:34:26
Проблема по поводу отражения спрайта трупа у монстров, после того как их убили, и за тем воскресили.
(это нужно чтобы гора трупов одного и того же монстра не смотрелась уж сильно одинаково)
Декорейт(вырезка одного из монстров):
Скрытый текст:

Actor HOTDZombieMan : ZombieMan Replaces ZombieMan
{ DropItem "DropPistol" 256
States
{ Death:
POSS H 5 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
POSS I 5 A_Scream
POSS J 0 A_UnsetShootable
POSS J 5 A_UnsetSolid
POSS K 5

Death.Wait:
POSS L 1
POSS L 0 A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
Loop

Death.HelpMe:
POSS L 1 CanRaise A_CheckProximity( "Death.Wait", "NmArchvile", 64 )
POSS L 0 CanRaise A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
Goto Death.Wait

XDeath:
POSS M 5
POSS N 5 A_XScream
POSS O 5 A_NoBlocking
POSS PQRST 5
POSS U 900
Wait

Raise:
POSS KJIH 5
goto See

Crush:
POL5 A -1 A_PlaySound ("Misc/Gibbed")
stop
}
}



Строка "POSS H 5 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)" отвечает за случайное отражение спрайта(по горизонтали).
С монстрами у которых нет стейта воскрешения всё нормально, но с этим стейтом после воскрешения иногда монстры начинают ходить лунной походкой из-за сработавшего отражателя в Death стейте(выглядит забавно-стрёмно))).

Вопрос. Можно ли как то в стейте Raise прописать обнуление/отмену или как то так, отражения спрайта(если отражение сработало), если монстр воскрешён?
2
theleo_ua
= Colonel =
Next rank: - Commissar - after 258 points
4632

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №2652 Отправлено: 18.09.17 12:07:00
SSV_Victoryan:
Вопрос. Можно ли как то в стейте Raise прописать обнуление/отмену или как то так, отражения спрайта(если отражение сработало), если монстр воскрешён?


первая строчка в Raise:
TNT1 A 0 A_SetScale(1.0)

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

Doom Rate: 2.18

Posts quality: +276
Ссылка на пост №2653 Отправлено: 18.09.17 12:29:51
theleo_ua:
первая строчка в Raise:
TNT1 A 0 A_SetScale(1.0)

Эээ, погоди ка. Если перевести на бытовой язык то это строка означает буквально следующее: пренудительное отражение спрайта в стартовое положение?
Если я прав, то я балбес, что не догадался сам.

Посмотрел на дум вики и там написано A_SetScale (float scaleX [, float scaleY [, int pointer [, bool usezero ]]])
а другие параметры в строке разве не нужно указывать? ScaleY например.
2
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №2654 Отправлено: 18.09.17 14:01:09
SSV_Victoryan
В квадратных скобочках обычно указывают необязательные параметры. К примеру, в этой функции первый параметр обязателен, а остальные --- нет.
A_SetScale(1.0) означает "принудительно сменить растяжение по x-координате спрайта на стандартное". Если нужно ещё и по y, то A_SetScale(1.0, 1.0).

Рейтинг сообщения: +1, отметил(и): SSV_Victoryan
1 2
JSO x
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 142 points
1298

Doom Rate: 2.29

Posts quality: +698
Ссылка на пост №2655 Отправлено: 18.09.17 15:49:55
Не совсем так. В данном случае, если указан только первый параметр, или "scaleY" = "0", то растяжение идёт на обе оси, не только на X; иначе, если оба атрибута указаны, используется именно они.

Как вариант -- можно принудительно задать использование растяжения "0" на "scaleY" через последний параметр "useZero".

               A_SetScale:

scaleY: the actor's new vertical scale. If this parameter is not given, or is set to 0, scaleX is used as well. Default is 0.

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

Doom Rate: 2.18

Posts quality: +276
Ссылка на пост №2656 Отправлено: 20.09.17 11:23:23
Очередной вопрос:
https://zdoom.org/wiki/ThrustThing


Как заставить двигаться объект по стрелке с неизменяемой скоростью(без торможения и ускорения) постоянно до креста на скрине?


Писал: ThrustThing(192, 128, 0, 55); из этого понял только угол, ускорение(мне нужна постоянная скорость), третий параметр вообще не понял, ну и тег.
Пробовал сначала Thing_Move но это оказался по своей сути персональный телепорт.
2
alekv
- Colonel -
Next rank: = Colonel = after 272 pointsМодератор форума
4168

Doom Rate: 1.87

Posts quality: +948
Ссылка на пост №2657 Отправлено: 20.09.17 12:51:21
SSV_Victoryan
Как вариант можно использовать



script "test" enter
{
int obj_TID = 6; //объект который надо двигать ему даем таг 6
int Point_TID = 7; //Точка куда надо дойти, ей даем таг 7

while (distance(obj_TID, POINT_TID) > 32) //Проверяем дистанцию от объекта до точки, если объект около точки.
{
SetActorVelocity (obj_TID, 10.0, GetActorY(obj_TID), GetActorZ(obj_TID), FALSE, FALSE);//Объект двигается со скоростью 10.0 по X+ координате. Если надо в обратную, то над -10.0.. Если надо по Y, пишем вместо GetActorY, скорость..
//Объект будет двигаться куда напишешь, но только в 1 сторону постоянно +) т.е. от старта до финиша.
Delay(1);
}

}

function int distance (int tid1, int tid2)
{
int x, y, d;
x = GetActorX(tid1) - GetActorX(tid2) >> 16;
y = GetActorY(tid1) - GetActorY(tid2) >> 16;
d = sqrt( x*x + y*y );
return d;
}



Еще можно так вот сделать

Script "Test2" ENTER
{
int obj_TID = 6; //объект который надо двигать ему даем таг 6
int Point_TID = 7; //Точка куда надо дойти, ей даем таг 7

While(distance(obj_TID, POINT_TID) > 32)
{
int DiffX = GetActorX(POINT_TID)-GetActorX(obj_TID);
int DiffY = GetActorY(POINT_TID)-GetActorY(obj_TID);
int DiffLen = VectorLength(DiffX, DiffY);
DiffX = FixedDiv(DiffX, DiffLen);
DiffY = FixedDiv(DiffY, DiffLen);
SetActorVelocity(obj_TID, DiffX, DiffY, GetActorZ(obj_TID), FALSE, FALSE);
Delay(1);
}

}

function int distance (int tid1, int tid2)
{
int x, y, d;
x = GetActorX(tid1) - GetActorX(tid2) >> 16;
y = GetActorY(tid1) - GetActorY(tid2) >> 16;
d = sqrt( x*x + y*y );
return d;
}


Последний скрипт будет тащить объект пока тот не дойдет до точки.

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

ps ничего не тестил.. потому все пробуй сам.

Рейтинг сообщения: +2, отметил(и): Kragoth762, SSV_Victoryan
1 3 1
MyNameIs
= 1st Lieutenant =
Next rank: - Captain - after 60 points
2030

Doom Rate: 2.05

Posts quality: +876
Ссылка на пост №2658 Отправлено: 20.09.17 13:01:31
Когда я делал летающего робота-игрока, я юзал такую конструкцию:

Скрытый текст:

Я с мобилки, поэтому опишу суть



while (true)
{
ThrustThing
Delay (1)
Thing_Stop
}

Оно выглядит сломано (потому что после остановки дилея нет. А еще потому что вроде в другом порядке это не работает), но так это в принципе вроде работает
1 1 1
mars873
- Master Sergeant -
Next rank: = Master Sergeant = after 43 points
417

Doom Rate: 1.77

Posts quality: +118
Ссылка на пост №2659 Отправлено: 20.09.17 13:32:06
SSV_Victoryan
Первый параметр - угол, который можно понять по данной таблице

Второй параметр - количество юнитов, которое проходит предмет за один тик, одна секунда - 35 тиков.
Третий, собственно выставляется 1, если второй параметр больше 30, ну а последний уже идентификатор того предмета.

И в твоём случае можно просто рассчитать, сколько тиков нужно и ввести их через delay() и какую скорость указать, чтобы предмет пролетел нужное расстояние, и тогда его остановить через Thing_Stop.

Рейтинг сообщения: +1, отметил(и): SSV_Victoryan
1 1
Kragoth762
= Master Sergeant =
Next rank: - Sergeant Major - after 54 points
476

Doom Rate: 1.93

Posts quality: +47
Ссылка на пост №2660 Отправлено: 20.09.17 14:54:07
Actor mover, тоже сработает наверное, но как пользоваться хз... думаю нужны ещё interpolation points (interpolate..)
2 1
Страница 133 из 200Перейти наверх Пред.  1, 2, 3 ... 132, 133, 134 ... 198, 199, 200  След.
   Список разделов - Флуд и устаревшие темы - Тема для новичков. Вопросы по маппингу/моддингу - любые!