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

Doom Rate: 2.06

Posts quality: +102
Ссылка на пост №461 Отправлено: 15.03.08 05:20:31
cybermind
MagewandMissile - это актер из игры Хексен, который уже содержится в коде (Г)Здума, и который обладает очень интересными свойствами. Если его грамотно наследовать, то получается очень прикольно!
А что касается кода, то...

Actor LaserShot : MageWandMissile //LaserShot является копией актора MageWandMissile
{
Damage 3 //дамаг побольше
+EXTREMEDEATH //актер рвет всех в мясо
}

//наследуем и заменяем хвост лазера на свой собственный

Actor LaserTail : MageWandSmoke Replaces MageWandSmoke
{
Translation "192=207:176:191" //У нас будет лазер красного цвета
Scale 0.5 //И тонкий
States
{
Spawn:
PLSS A 0 A_Jump(128,3) //Прыжок к другой части кода, где стейты стоят в другом порядке
PLSS AB 2 Bright
Stop
PLSS BA 2 Bright //А вот и другая часть кода, ее делать не обязательно - главное в этом случае - //убрать "прыжок"
Stop
}
}

ВНИМАНИЕ : таким образом можно делать только один типа лазера!

ЗЫ Вообще актеры их Хексена - это кульная тема!Главное - грамотно их наследовать, и тогда можно такого наваять!
1 1 1
Shadowman
UAC General
Next rank: Unavailable after 0 points
8590

Doom Rate: 2.07

Posts quality: +2141
Ссылка на пост №462 Отправлено: 15.03.08 13:40:32
dukenator:
Вообще актеры их Хексена - это кульная тема

У меня вопрос - как ты догадываешься, что надо наследовать, а что заменять и откуда прознал про след от лазера? В вике по хексену нет декорэйта, увы. В gzdoom.pk3 его акторы тоже не все прописаны насколько я знаю.
1 7 2
dukenator
UAC Sergeant Major
Next rank: UAC Sergeant Major after 34 points
726

Doom Rate: 2.06

Posts quality: +102
Ссылка на пост №463 Отправлено: 15.03.08 14:05:44
Shadowman
Про то, что лазер и его след это две большие разницы, я узнал из вики - там написаны все классы, но, к сожалению, не все раздекорейчены :(
А что касается наследования и замены - то тут все достаточно просто - актор лазера еще не импортирован в формат декорейта, верно?
А оставлять след он может только в стате спавна.Следовательно, если попытаться заменить стат спавна лазера, то эффект быстрого полета изчезнет...
Поэтому надо заменить актор следа, который лазер оставляет, чтобы луч лазера(который состоит из акторов следа) был виден в темноте(стат спавна следа можно менять как хочешь - тут даже спрайты необязательно импортировать)

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

У меня вопрос - а что с Думскриптом?Он еще в планах или на него забили?
1 1 1
nprotect
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 97 points
1343

Doom Rate: 2.45

Ссылка на пост №464 Отправлено: 17.03.08 20:32:57
вопрос
у кого нибудь есть краткое описание функций ACS? чтоб все вместе и в текстовом формате :)
1 2 1
3EPHOEd
- Warrant Officer -
Next rank: = Warrant Officer = after 29 points
1111

Doom Rate: 2.34

Posts quality: +7
Ссылка на пост №465 Отправлено: 17.03.08 22:00:40
nprotect
Оно есть даже у тебя :oops:
Зайди в папку Дум Билдера и открой блакнотом ACS.cfg
Лично мне в 90% случаев хватает его.
1 2 2
nprotect
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 97 points
1343

Doom Rate: 2.45

Ссылка на пост №466 Отправлено: 17.03.08 22:26:21
3EPHOEd
да нет, это-то понятно :) я имел ввиду с параметрами хотя бы и малюсеньким описанием :) а то тут просто поступило заявление, что мол маппить в оффлайне нереально, и хотелось бы заиметь такой документик. чтоб тем кто без инета сидит
1 2 1
3EPHOEd
- Warrant Officer -
Next rank: = Warrant Officer = after 29 points
1111

Doom Rate: 2.34

Posts quality: +7
Ссылка на пост №467 Отправлено: 18.03.08 02:04:42
nprotect
У меня на сайте зазеркаленный есть Zdoom - WiKi староват но не сильно много то и добавилось.
Built-in_ACS_functions.rar от (14/06/07) там CHM кой с поиском.
http://bhammer.narod.ru/gzdoom.htm

Чес говоря я как раз в офлайне по той поре и сидел, толко изучать начал с копания в уже готовых картах. Вики больше "на всякий случай" скачал.
DECORATE до сих пор так и не расковырял, так, совсем по простому в нём хулиганю.
1 2 2
Sashok
Marine
Next rank: Marine 1st class after 8 points
22

Doom Rate: 1

Ссылка на пост №468 Отправлено: 20.03.08 13:43:10
А каким способом можно изменить кол-во здоровья игрока, к-рое даётся
аптечками и бутылочками? И нужно ли для этого создавать новый
предмет, либо только прописать в ДЕКОРЕЙТЕ нек-рые параметры?
dukenator
UAC Sergeant Major
Next rank: UAC Sergeant Major after 34 points
726

Doom Rate: 2.06

Posts quality: +102
Ссылка на пост №469 Отправлено: 20.03.08 13:45:42
Sashok
Открываешь ламп Dehacked и пишешь там:
Misc 0
Max Armor = 666
Max Health = 666
1 1 1
Sashok
Marine
Next rank: Marine 1st class after 8 points
22

Doom Rate: 1

Ссылка на пост №470 Отправлено: 21.03.08 10:36:32
Почему 666 ? Это самый предел ?

Я немного неточно выразился: когда берётся, напр., мал. аптечка, то прибавляется 10%.
А можно ли сделать, чтобы прибавлялось больше или меньше ?
Eternal
- Captain -
Next rank: = Captain = after 34 points
2306

Doom Rate: 3.7

Posts quality: +13
Ссылка на пост №471 Отправлено: 21.03.08 11:01:08
Sashok:
А можно ли сделать, чтобы прибавлялось больше или меньше ?

Да положи ты аптеку одну в другую и будет тебе больше. :twisted:
А меньше бутылочками разруливай. Токо вот зачем меньше?
2 2 2
dukenator
UAC Sergeant Major
Next rank: UAC Sergeant Major after 34 points
726

Doom Rate: 2.06

Posts quality: +102
Ссылка на пост №472 Отправлено: 21.03.08 12:51:23
Sashok
Нет, 666 не предел, просто число такое...

А за кол-во здоровья отвечает строка Inventory.Amount

Вот, например, код хелсбонуса, который заменяет собой обычный - он добавляет 5 хелсов да к тому же он красного цвета:

Actor HealthBonus2 : HealthBonus Replaces HealthBonus
{
Inventory.Amount 5
Translation "192:207=176:191", "240:247=184:191"
}
1 1 1
Eternal
- Captain -
Next rank: = Captain = after 34 points
2306

Doom Rate: 3.7

Posts quality: +13
Ссылка на пост №473 Отправлено: 21.03.08 21:37:07
Android128:
Сколько я ничитал , но всё равно ничего не понял.Где вопще все эти конфиги монстров и оружия?

ну так низя. ну возьми уже вад какой-то под здум с декорейтом, ну открой его в редакторе xwe или DeepSea, ну и почитай декорейт. ужели тяжело? :crazy:
2 2 2
Sashok
Marine
Next rank: Marine 1st class after 8 points
22

Doom Rate: 1

Ссылка на пост №474 Отправлено: 23.03.08 15:57:34
Слушайте, а как можно замедлить скорость Игрока ?
nprotect
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 97 points
1343

Doom Rate: 2.45

Ссылка на пост №475 Отправлено: 23.03.08 16:14:25
Sashok
можно через ACS, функция SetActorProperty:
http://www.zdoom.org/wiki/SetActorProperty
параметр APROP_Speed

еще можно как-то через DECORATE, но я всегда этим обходился
1 2 1
Shadowman
UAC General
Next rank: Unavailable after 0 points
8590

Doom Rate: 2.07

Posts quality: +2141
Ссылка на пост №476 Отправлено: 23.03.08 19:23:32
Eternal
Все, разобрался уже :)
проще добавлять в инвентори шмотку и далее Checkinventory проверять: если она есть, то скрипт не выполнять, если нету - выполнять (или наоборот). А при касании "настоящего пола" эту штуку убирать из инвентори.

Твой вариант тоже годится, только надо спавнить вещь всякий раз если скрипт повторяемый. Проще добавлять вещь через скрипт в инвентарь.
1 7 2
Картос
Marine 1st class
Next rank: - UAC Gunner - after 6 points
34

Doom Rate: 1.89

Ссылка на пост №477 Отправлено: 24.03.08 20:43:41
Саня(нпротект), спасибо за ссылки.:) очень помогли. У меня есть вопрос. Начал мапить под здум ин дум. Можно ли эту мапу переделать под здум ин хексен? Хотелось бы красивее эту мапу сделать.
Хочу мегавад сделать. Как раз его и делаю. Ну думаю со скриптами будет красивее:)
Android128[SDC]
- Lance Corporal -
Next rank: = Lance Corporal = after 28 points
132

Doom Rate: 1.43

Ссылка на пост №478 Отправлено: 24.03.08 21:27:52
Ладно , тогда начну с тупых вопросов.Как назначить количество патронов в обойме , а потом заставить перезарежать его?
1
cybermind
- Warrant Officer -
Next rank: = Warrant Officer = after 95 points
1045

Doom Rate: 1.99

Posts quality: +163
Ссылка на пост №479 Отправлено: 26.03.08 11:49:33
Как сделать так чтобы снаряд,который у меня будет спавниться после смерти другого снаряда,не летел на игрока? А то даже если ты спрячешься за стеной,он будет лететь в твою сторону,но естественно врезаться об стенку. А вот как сделать,чтоб если ты выше или ниже места смерти снаряда, спавнящийся снаряд летел параллельно полу?
1 2 1
Guest
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 167 points
1473

Doom Rate: 2.5

Posts quality: +182
Ссылка на пост №480 Отправлено: 26.03.08 14:07:45
Android128:
Как назначить количество патронов в обойме , а потом заставить перезарежать его?

Ну пусть у тебя есть пистолет, и ты хочешь, чтоб у него была обойма на 8 патронов.

1. создаешь новый "инвентарь", который будет считать число патронов в данный момент в обойме:

ACTOR PistolClip : Ammo Ammo - указание движку, что новый тип инвентаря является боеприпасами
{
Inventory.MaxAmount 8 собственно сколько вмещает в себя обойма
Ammo.BackpackAmount 0 поскольку при взятии рюкзака непосредственно в обойме патронов не прибавляется, пишем 0
Ammo.BackpackMaxAmount 8 емкость обоймы после взятия рюкзака не меняется, поэтому тут тоже 8
Inventory.Icon PISTA0 название спрайта, который во всяких альтхудах будет рисоваться как соответствующий данному типу боеприпасов
}

2. теперь прописываем оружию патроны (указываю только те флажки и свойства, которые имеют отношение к вопросу, а не полное описание оружия)
Пускай перезаряжаться пистолет будет альтернативной атакой

ACTOR NewPistol : Weapon
{
Weapon.AmmoType1 "PistolClip" указание на тип боеприпасов, расходумых при стрельбе
Weapon.AmmoType2 "Clip" указание на тип боеприпасов, расходуемых при альтернативной атаке; в данном случае заряжать будем обычными пульками
Weapon.AmmoGive 0 число патронов "первого типа", которые получаем, когда находим пистолет. Естественно, если мы нашли еще один пистолет, то число патронов в обойме того, что в руках, не меняется, пишем нуль
Weapon.AmmoGive2 8 а вот того, чем будем заряжать, наверняка подвезли; если подбираемый пистолет выпал из монстра, то дается лишь половина
Weapon.AmmoUse 1 при выстреле из обоймы расходуется одна пулька, но при желании можно вписать, скажем, две :ha: , типа двуствольный пистолет
Weapon.AmmoUse2 0 а вот тут тонкий момент - можно доверить движку вычитать пульки из общего пула, заряжаемые в обойму, но в большинстве случаев проще это сделать самому, поэтому пишем, что при перезарядке якобы ничего не расходуется
+AMMO_OPTIONAL указание движку не сменять пистолет, если нет патронов в обойме в момент выстрела; в принципе флаг необязательный, но может быть полезен, например, если хочешь, чтоб при пустой обойме при попытке выстрела перезарядка запускалась автоматически
+NOALERT флажок указывает, что данное оружие для монстров является бесшумным; в нашем случае флаг может пригодится, если хотим, чтоб перезарядка не привлекала внимания монстров

States
{
Fire:

PISG A 0 A_JumpIfInventory("PistolClip",1,1) если флаг +AMMO_OPTIONAL был использован, то проверку наличия патронов в обойме нужно прописывать самим. Данная строчка означает, что при наличии хотя бы одного патрона совершается прыжок на один фрейм вперед. Далее по тексту идет команда безусловного перехода GOTO, которая в фреймах имеет нулевую длину, следовательно мы через нее перескакиваем без выполнения.
GOTO Ready Если патронов не оказалось, то выполнение стейта Fire на этом прерывается; если же хотим, чтоб при отсутствии патронов автоматически включалась перезарядка, вместо GOTO Ready пишем GOTO AltFire
PISG A 0 сюда мы попадаем после команды перехода (патроны в обойме были). Этому фрейму указываем нулевую длительность и не пишем никаких команд; дело в том, что в Декорейте есть баг, заключающийся в том, что если в некий фрейм мы попадаем не в порядке очереди, а посредством команды перехода, некоторые команды в данном фрейме не срабатывают, бывают и кое-какие другие проблемы, поэтому в "точку приземления" после команды перехода вставляют пустой фрейм нулевой длительности. Просто от греха подальше
PISG B 4 переход выполнен, теперь можно спокойно заняться делом
PISG A 0 A_FireBullets(5,5,1,6,1) бабах! :o последний параметр указывает, что при стрельбе использутся боеприпасы, что заявлено в начале. Если поставить ноль, то движок вычитать патроны из инвентаря не будет и их расход нужно прописывать самому. Иногда такая возможнось бывает полезна.
PISG A 0 A_AlertMonsters если использовали +NOALERT для бесшумности перезарядки, то теперь, как честные люди, должны сообщить монстрам, что только что в них стреляли
PSTG A 6
PISG A 0 A_Refire если пистолет автоматический, можно добавить такую строчку, хотя к делу это не относится
Goto Ready

далее перезарядка. Схемы опять же могут быть различны; в данном случае рассмотрим вариант, когда обойма дозаряжается по одному патрону до тех пор, пока не заполнится полностью.

AltFire:
PISG A 0 A_JumpIfInventory("PistolClip",8,"Ready") а надо ли нам вообще перезаряжаться? Если нет, то на этом перезарядка обрывается
PISG A 0 A_JumpIfInventory("Clip",1,1) а есть ли нам чем дозаряжать?
Goto Ready
PISR A 0 есть! :twisted: (иначе бы тута не оказались)
PTTR A 4
PTTR B 5
PTTR C 5 A_PlaySound("misc/slidebk")
три строчки выше типа анимация процесса вынимания обоймы из пушки со звуками, если есть желание данный процесс отобразить в деталях
PISG A 0 еще один пустой фрейм, еще понадобится; точка начала цикла
PISG A 0 A_JumpIfInventory("PistolClip",8,2) в начале каждого цикла проверяем, не зарядась ли обойма до конца
PISG A 0 A_JumpIfInventory("Clip",1,3) и если нет, то есть ли чем дозаряжать дальше?
TNT1 A 0
PISG A 0 A_Jump(256,4) распространенная ошибка - вместо 256 пишут 255, полагая, что это соответствует максимальной вероятности, что приводит к нередким "недозарядам". Данная строчка отвечает за выход из цикла
TNT1 A 0
PISG A 0 A_TakeInventory("Clip",1) ну, коль есть, возьмем пульку из общего пула патронов
PISG A 0 A_GiveInventory("PistolClip",1) и вставим в обойму
GOTO AltFire+7 идем в начало цикла, чтоб вставить в обойму следующую пульку. Стоит отметить, что весь цикл имеет нулевую длину по времени, так что вся перезарядка проходит мгновенно, но если это по каким-то причинам не устраивает, исправить легко.
TNT1 A 0 и еще пустой фрейм; сюда попадаем, когда цикл перезарядки по тем или иным причинам заканчивается; далее идет анимация завершения перезарядки
PTTR D 5 A_PlaySound("misc/slidebk")
PTTR E 4
PTTF A 0 A_PlaySound("misc/CLIPINN")
goto Ready
}
}

Есть еще куча нюансов, но в общих чертах все так.
3 1
Страница 24 из 31Перейти наверх Пред.  1, 2, 3 ... 23, 24, 25 ... 29, 30, 31  След.
   Список разделов - Флуд и устаревшие темы - (G)ZDoom - ACS - DECORATE З-вопросы