Welcome to U.A.C.
login / register 
Status: Guest
Forum archive | iddqd.ru
Wolf 3D
RulesRules SearchSearch
18+
Тема для новичков. Вопросы по маппингу/моддингу - любые!Goto page Previous  1, 2, 3 ... 132, 133, 134 ... 198, 199, 200  Next
   Forum Index - Флуд и устаревшие темы - Тема для новичков. Вопросы по маппингу/моддингу - любые!Post a reply
AuthorMessage
SSV_Victoryan
UAC Sergeant Major
Next rank: Chief Petty Officer after 29 points
821

Doom Rate: 2.17

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


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

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

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

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

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: - 1st Lieutenant - after 188 points
1452

Doom Rate: 2.33

Posts quality: +800
Link to post #2642 Posted: 16.09.17 23:02:17
SSV_Victoryan:
Гляжу пока я тестил ты опять что-то собрался в коде менять?

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

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

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

Doom Rate: 2.17

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


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

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

Hidden text:

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: - 1st Lieutenant - after 188 points
1452

Doom Rate: 2.33

Posts quality: +800
Link to post #2644 Posted: 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 -- самое подходящее из степеней двойки.
3 8 1
SSV_Victoryan
UAC Sergeant Major
Next rank: Chief Petty Officer after 29 points
821

Doom Rate: 2.17

Posts quality: +280
Link to post #2645 Posted: 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.

This post scores averagely at 1.00 point(s) with 0 commenters.
2
theleo_ua
- Commissar -
Next rank: = Commissar = after 24 points
5316

Doom Rate: 1.79

Posts quality: +1220
Link to post #2646 Posted: 17.09.17 09:25:10
JSO x:
Однако все jump'ы делаются непосредственно после того, как они будут выполнены.


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

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


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

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


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

Doom Rate: 1.97

Posts quality: +701
Link to post #2647 Posted: 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 116 points
2224

Doom Rate: 4.33

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

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

This post scores averagely at 2.00 point(s) with 0 commenters.
1 4 32
JSO x
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 188 points
1452

Doom Rate: 2.33

Posts quality: +800
Link to post #2649 Posted: 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.
Но это моё мнение, я не изучал этот вопрос. Могу ошибаться.
3 8 1
VladGuardian
- UAC Commissar -
Next rank: = UAC Commissar = after 225 points
6075

Doom Rate: 1.33

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

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

This post scores averagely at 1.00 point(s) with 0 commenters.
4 17 23
SSV_Victoryan
UAC Sergeant Major
Next rank: Chief Petty Officer after 29 points
821

Doom Rate: 2.17

Posts quality: +280
Link to post #2651 Posted: 18.09.17 09:34:26
Проблема по поводу отражения спрайта трупа у монстров, после того как их убили, и за тем воскресили.
(это нужно чтобы гора трупов одного и того же монстра не смотрелась уж сильно одинаково)
Декорейт(вырезка одного из монстров):
Hidden text:

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
- Commissar -
Next rank: = Commissar = after 24 points
5316

Doom Rate: 1.79

Posts quality: +1220
Link to post #2652 Posted: 18.09.17 12:07:00
SSV_Victoryan:
Вопрос. Можно ли как то в стейте Raise прописать обнуление/отмену или как то так, отражения спрайта(если отражение сработало), если монстр воскрешён?


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

This post scores averagely at 1.00 point(s) with 0 commenters.
4 1
SSV_Victoryan
UAC Sergeant Major
Next rank: Chief Petty Officer after 29 points
821

Doom Rate: 2.17

Posts quality: +280
Link to post #2653 Posted: 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
Link to post #2654 Posted: 18.09.17 14:01:09
SSV_Victoryan
В квадратных скобочках обычно указывают необязательные параметры. К примеру, в этой функции первый параметр обязателен, а остальные --- нет.
A_SetScale(1.0) означает "принудительно сменить растяжение по x-координате спрайта на стандартное". Если нужно ещё и по y, то A_SetScale(1.0, 1.0).

This post scores averagely at 1.00 point(s) with 0 commenters.
1 2
JSO x
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 188 points
1452

Doom Rate: 2.33

Posts quality: +800
Link to post #2655 Posted: 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.

This post scores averagely at 5.00 point(s) with 0 commenters.
3 8 1
SSV_Victoryan
UAC Sergeant Major
Next rank: Chief Petty Officer after 29 points
821

Doom Rate: 2.17

Posts quality: +280
Link to post #2656 Posted: 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 270 pointsForum moderator
4170

Doom Rate: 1.87

Posts quality: +951
Link to post #2657 Posted: 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 ничего не тестил.. потому все пробуй сам.

This post scores averagely at 2.00 point(s) with 0 commenters.
1 3 1
MyNameIs
- Captain -
Next rank: = Captain = after 244 points
2096

Doom Rate: 2.01

Posts quality: +938
Link to post #2658 Posted: 20.09.17 13:01:31
Когда я делал летающего робота-игрока, я юзал такую конструкцию:

Hidden text:

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



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
Link to post #2659 Posted: 20.09.17 13:32:06
SSV_Victoryan
Первый параметр - угол, который можно понять по данной таблице

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

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

This post scores averagely at 1.00 point(s) with 0 commenters.
1 1
Kragoth762
= Master Sergeant =
Next rank: - Sergeant Major - after 56 points
474

Doom Rate: 1.93

Posts quality: +47
Link to post #2660 Posted: 20.09.17 14:54:07
Actor mover, тоже сработает наверное, но как пользоваться хз... думаю нужны ещё interpolation points (interpolate..)
2 1
Page 133 of 200Go to topGoto page Previous  1, 2, 3 ... 132, 133, 134 ... 198, 199, 200  Next
   Forum Index - Флуд и устаревшие темы - Тема для новичков. Вопросы по маппингу/моддингу - любые!