Welcome to U.A.C. [O.S.A.]
login / register 
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
(G)ZDoom - ACS - DECORATE З-вопросы Пред.  1, 2, 3 ... 24, 25, 26 ... 29, 30, 31  След.
   Список разделов - Флуд и устаревшие темы - (G)ZDoom - ACS - DECORATE З-вопросыОтветить
АвторСообщение
Android128[SDC]
- Lance Corporal -
Next rank: = Lance Corporal = after 28 points
132

Doom Rate: 1.43

Ссылка на пост №481 Отправлено: 26.03.08 14:16:47
Спасибо Guest :appl:
1
dukenator
UAC Sergeant Major
Next rank: UAC Sergeant Major after 34 points
726

Doom Rate: 2.06

Posts quality: +102
Ссылка на пост №482 Отправлено: 27.03.08 11:42:26
Android128
Ну правильно не получается, перед комментами // ставить надо, или удали их нафиг из кода.
1 1 1
Guest
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 167 points
1473

Doom Rate: 2.5

Posts quality: +182
Ссылка на пост №483 Отправлено: 14.04.08 22:00:35
zer0:
Если создал несколько классов игрока, как сделать для них разное оружие?

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

По сабжу: в стартовый инвентарь добавляется некий инвентори (причем каждому классу свое количество - по сути "номер" класса), а дальше этот "номер" используется в теле описания акторов, свойства которые должны различаться для разных классов.
3 1
dukenator
UAC Sergeant Major
Next rank: UAC Sergeant Major after 34 points
726

Doom Rate: 2.06

Posts quality: +102
Ссылка на пост №484 Отправлено: 15.04.08 03:46:41
Guest
Объясни мне плиз, как эта система с инвентори и классами игроков работает - и еще:
как сделать, чтобы игрок мог подбирать оружие, предназначенное только для его класса?
А то я в этом как-то не разбираюсь :diatel:
1 1 1
zer0
= Sergeant Major =
Next rank: UAC Sergeant Major after 25 points
655

Doom Rate: 2.13

Posts quality: +56
Ссылка на пост №485 Отправлено: 15.04.08 07:55:12
Guest
я же не спрашивал, как делать разные типы инвентори. Меня интересует, как сделать, чтобы для акторов было вообще разное оружие. Чтобы у одного класса какое-то оружие было, а у другого - нет. Причем мне интересно, можно ли так, чтобы у одного класса его оружие лежало в одних местах на мапе, а у другого этого оружия там не было, а его оружие лежало в других местах.

Хотя, возвращаясь к сказанному тобой, если вставить проверку инвентаря в spawn стейт нужного итема, эта проверка будет чекать инвентарь игрока?
2 1 2
Guest
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 167 points
1473

Doom Rate: 2.5

Posts quality: +182
Ссылка на пост №486 Отправлено: 15.04.08 10:06:26
zer0:
я же не спрашивал, как делать разные типы инвентори

А я тебе этого и не объяснял. По твоему вопросу не было понятно, нужно именно разное оружие, или чтоб оружие в руках разных акторов вело себя по-разному, а потому обрисовал подход в целом, ибо в обоих случаях классы нумеруются с помощью инвенторя.

zer0:
Причем мне интересно, можно ли так, чтобы у одного класса его оружие лежало в одних местах на мапе, а у другого этого оружия там не было, а его оружие лежало в других местах.

Делаешь спавнер, который в зависимости от класса игрока спавнит то или иное оружие, или не спавнит ничего.

zer0:
если вставить проверку инвентаря в spawn стейт нужного итема, эта проверка будет чекать инвентарь игрока?

A_JumpIfInventory проверяет "карманы" актора, в теле описания которого данная функция вызывается. Инвентарь есть у любого актора, даже неодушевленного, поэтому если ты при описании спавнера используешь A_JumpIfInventory, то "карманы" спавнера она и будет шарить, а не "карманы" игрока. Исключение составляет актор, который является инвентарем, уже лежащем в чьем-то "кармане", в этом случае A_JumpIfInventory проверяет не "карманы" инвенторя, а "карманы" хозяина. Хорошим примером в этом смысле является оружие - в Spawn-стейте A_JumpIfInventory проверяет "карманы" самого оружия, во всех остальных - уже "карманы" игрока.

В свете вышесказанного, для того, чтобы спавнер работал, как задумано, ему сначала (в зависимости от текущего класса игрока) нужно положить в "кармашек" инвентори, который он будет чекать. Делается это скриптом вида:

Script 111 ( void )	
{

int ClassChecker = CheckActorInventory(1111, "ClassChecker");

switch (ClassChecker)
	
	{
	case 0:
	break;

	case 1:
	GiveInventory("ClassChecker", 1);
	break;

	case 2:
	GiveInventory("ClassChecker", 2);
	break;	
	
	case 3:
	GiveInventory("ClassChecker", 3);
	break;	
	}

}


Данный пример предполагает, что классов у нас 4; ну и придется сначала игроку дать TID - в примере 1111.
3 1
zer0
= Sergeant Major =
Next rank: UAC Sergeant Major after 25 points
655

Doom Rate: 2.13

Posts quality: +56
Ссылка на пост №487 Отправлено: 15.04.08 14:31:36
Меня интересовало, можно ли это реализовать чистым декорейтом. Раз нужны скрипты, тут мне уже все понятнее.

Я вот сейчас пытаюсь понять смысл флага +AMMO_OPTIONAL. В вики просто написано, что он обозначает оружие, не расходующее патронов. Однако он явно делает не просто это, потому что без него некоторые образцы нового оружия ведут себя некорректно (например, при попытке стрелять с пустым магазином не прыгают в стейт перезарядки, даже если в Fire стейте прописано A_JumpIfNoAmmo("Reload")).
2 1 2
nprotect
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 97 points
1343

Doom Rate: 2.45

Ссылка на пост №488 Отправлено: 15.04.08 14:36:44
zer0:
Я вот сейчас пытаюсь понять смысл флага +AMMO_OPTIONAL.

ну а зачем, можно ведь просто прописать ammouse 0, разве нет
1 2 1
zer0
= Sergeant Major =
Next rank: UAC Sergeant Major after 25 points
655

Doom Rate: 2.13

Posts quality: +56
Ссылка на пост №489 Отправлено: 15.04.08 14:52:02
nprotect
я и говорю. Но этот флаг есть в коде нового оружия во многих модах. Я сам его использовал. А когда решил убрать, обнаружил, что оружие при попытке стрелять с пустым магазином не прыгает в стейт перезарядки, даже если в Fire стейте прописано A_JumpIfNoAmmo("Reload"), а вместо этого выбирает другое оружие, будто в нем кончились патроны.


Слушайте, еще, почему при взятии ствола дается в два раза больше патронов, чем прописано в weapon.ammogive?
2 1 2
Nil
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 127 points
1513

Doom Rate: 2.31

Posts quality: +64
Ссылка на пост №490 Отправлено: 15.04.08 15:02:10
zer0, easy или Nightmare и думать нечего. только в них в 2 раза больше патронов даётся :)
1 2 1
zer0
= Sergeant Major =
Next rank: UAC Sergeant Major after 25 points
655

Doom Rate: 2.13

Posts quality: +56
Ссылка на пост №491 Отправлено: 22.04.08 19:39:30
Народ, я вот голову уже ломаю, ломаю... совсем уже почти разломал, но никак не могу придумать, как бы мне через декорейт создать такую вещь, которая будет отнимать хелсы (в данном случае идет речь об оружии игрока, которое работает за его хелсы), причем не через какой-нибудь thing_damage, а именно отнимать, четко установленное количество хелсов, игнорируя броню игрока и наличие или отсутствие у него бессмертия. Как? Хелс - не итем, через A_takeinventory хелсы не отнимаются, их только через консоль можно отнять...
2 1 2
dukenator
UAC Sergeant Major
Next rank: UAC Sergeant Major after 34 points
726

Doom Rate: 2.06

Posts quality: +102
Ссылка на пост №492 Отправлено: 23.04.08 14:27:59
zer0
А чем тебя Thing_Damage не устраивает?Универсальная ведь штука :)
1 1 1
zer0
= Sergeant Major =
Next rank: UAC Sergeant Major after 25 points
655

Doom Rate: 2.13

Posts quality: +56
Ссылка на пост №493 Отправлено: 23.04.08 15:09:33
Nil
аналогично. Я работаю с Декорейтом через XWE и вообще почти всегда вопросы такого рода задавал там. Впрочем, когда я только начал интересоваться декорейтом, этого топика вообще не было, так что можно списать это на привычку. Теперь буду следить.

dukenator
ну ты читал вопрос, или нет? Я же говою: thing_damage - это просто как обычная атака по игроу - броня ее ослабляет, бессмертие ее полностью блокирует. А мне надо, чтобы отнималось всегда и одно и то же количество.
2 1 2
dukenator
UAC Sergeant Major
Next rank: UAC Sergeant Major after 34 points
726

Doom Rate: 2.06

Posts quality: +102
Ссылка на пост №494 Отправлено: 23.04.08 15:14:49
zer0
Попробуй тогда, чтобы при стрельбе оружие кидало невидимый актер, который взрывается на вылете - и незабудь прописать ему флаги +PIERCEARMOR и +FOILINVUL :)
1 1 1
zer0
= Sergeant Major =
Next rank: UAC Sergeant Major after 25 points
655

Doom Rate: 2.13

Posts quality: +56
Ссылка на пост №495 Отправлено: 24.04.08 01:42:52
dukenator
в принципе, это мысль, хотя надо еще проверить, насколько стабильно оно будет работать. Минус тут в том, что такой проджектайл может задеть кого-то рядом стоящего... Или может удастся без этого. Короче, пойду попробую.

P.S. косяк правда будет в том, что отнимать заданное количетсов оно-то и не будет. В Думе ведь формула рандомизации действует. Ее можно разве что уменьшить флагом +STRIFEDAMAGE (или что-то в этом роде), но потенциальный разброс все равно будет от 1-го до 4-х раз...
2 1 2
dukenator
UAC Sergeant Major
Next rank: UAC Sergeant Major after 34 points
726

Doom Rate: 2.06

Posts quality: +102
Ссылка на пост №496 Отправлено: 24.04.08 07:58:41
zer0
А ты ему дамаг по формуле поставь:

Например:

Damage (50*1)
1 1 1
dukenator
UAC Sergeant Major
Next rank: UAC Sergeant Major after 34 points
726

Doom Rate: 2.06

Posts quality: +102
Ссылка на пост №497 Отправлено: 25.04.08 13:41:38
Zero
Дамаг можно вбивать не просто числом, а по формуле - например:
Damage (10*(Random(1,3)+Random(1,8)) - дикий рендом

А если хочешь, чтобы дамаг был фиксированным, пиши
Damage (50*1)
50 - любое число
1 1 1
zer0
= Sergeant Major =
Next rank: UAC Sergeant Major after 25 points
655

Doom Rate: 2.13

Posts quality: +56
Ссылка на пост №498 Отправлено: 25.04.08 21:08:45
Так, ладно, я кажется нашел более эффективный способ и сейчас подхожу к вопросу с другого конца.


Вот мне интересно... Если не прибегать к ACS, можно ли реализовать такую штуку: мы берем некий итем (custominventory, иначе никак) и при этом получаем какой-то другой итем (до этого момента все просто) а потом ПОСЛЕ ЗАДЕРЖКИ (например 3000 тиков) этот же итем отнимается. Или вообще происходит любое другое действие, выполняется другая команда, главное - чтобы была ЗАДЕРЖКА. Потому что то, что прописано в стейте pickup (или use или любом стейте CustomInventory, кроме спаун-стейта) выполняется мгновенно, независимо от того, какая длина выставлена кадрам, к которым привязаны команды.
2 1 2
dukenator
UAC Sergeant Major
Next rank: UAC Sergeant Major after 34 points
726

Doom Rate: 2.06

Posts quality: +102
Ссылка на пост №499 Отправлено: 26.04.08 05:12:56
zer0
Тогда по идее тот новый итем, который тебе дается должен быть PowerUp'ом :)
1 1 1
nprotect
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 97 points
1343

Doom Rate: 2.45

Ссылка на пост №500 Отправлено: 26.04.08 14:23:21
Falcor
есть же функция GetActorAngle
http://www.zdoom.org/wiki/GetActorAngle

//*******************************************
//ADDED

тут была мессага фалькора про "как узнать угол актора по тиду", но потом пост пропал. мой ответ пусть висит, может кому пригодится :)
1 2 1
Страница 25 из 31Перейти наверх Пред.  1, 2, 3 ... 24, 25, 26 ... 29, 30, 31  След.
   Список разделов - Флуд и устаревшие темы - (G)ZDoom - ACS - DECORATE З-вопросы