Сайт Doom Power
 ПоискПоиск  ДумерыДумеры ВходВход
Создание нового оружия в (г)здуме Пред.  1, 2, 3, 4, 5, 6  След.
   Список разделов - Местечко Мапперов и Моддеров - Создание нового оружия в (г)здуме
Автор Сообщение
Guest
= Warrant Officer =
Next rank: (- 1st Lieutenant -) after 42 messages
1028

Сообщение Отправлено: 13.09.07 19:40:16

zer0 :
но ноль тиков - это копия того, что написано про стандартный думовский плазмаган, там то же самое 0_о

http://208.78.96.242/wiki/Classes:PlasmaRifle

Гды ты там ноль тиков увидел?

zer0 :
врезается в стену и остается лежать на полу, сияя

Такое тоже встречалось; это когда актор, исполняющий по мысли роль прожектайла не определен как прожектайл. Глянь, например сюда:
http://208.78.96.242/wiki/Classes:Rocket

Ключевое слово - PROJECTILE
zer0
- Lance Corporal -
Next rank: (= Lance Corporal =) after 21 messages
189

Сообщение Отправлено: 13.09.07 19:41:32

Опа! У меня почти получилось! Smile Почти настоящий свет, осталось только парочку вещей подкрутить Smile


ADDED:

Есть! Я это сделал! Smile Мой первый сложный декорейт объект Smile Это фонарь и он действительно довольно натурально светит на ограниченной дистанции. Остался лишь последий вопрос. Как сделать, чтобы последовательность Fire включалась при нажатии кнопки огня и выключалась при втором нажатии? А то держать кнопку зажатой немного напрягает...

Да, и еще одно. Скажем так... количество снарядов на один определнный отрезок линии в определенный момент времени зависит только от скорости снарядов?


ADDED:

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

ADDED:

Да, если наоборот уменьшить скорость, то "луч" получается более плотным. Вот так:


actor Flshball replaces PlasmaBall
{
spawnid 51
radius 13
height 8
speed 32
renderstyle Add
alpha 0.75
PROJECTILE
states
{
Spawn:
FLBL A 5 bright
goto Death
Death:
FLBL A 1 bright
stop
}
}


Но единственный косяк, что в таком случае с ним как раз и можно "как со струей" играться... Впрочем, не то, чтобы это было бы сильно плохо. Однако жаль, что нет эффекта рассеивания света.
Guest
= Warrant Officer =
Next rank: (- 1st Lieutenant -) after 42 messages
1028

Сообщение Отправлено: 13.09.07 19:59:23

zer0 :
Все-таки, видно, что это отдельные шары

Шары динамик лайта, или спрайты?

zer0 :
Как сделать, чтобы последовательность Fire включалась при нажатии кнопки огня и выключалась при втором нажатии? А то держать кнопку зажатой немного напрягает...

Тебе уже сказали, как это можно ПОПРОБОВАТЬ.
zer0
- Lance Corporal -
Next rank: (= Lance Corporal =) after 21 messages
189

Сообщение Отправлено: 13.09.07 20:09:48


Сделать проверку специтема в [Ready], а на [Fire] сделать выдачу\изъятие этого итема (в зависимости от того, есть ли он у игрока).


Вот что мне сказали. Если честно, я не понял. КАКОГО итема? И ЧТО должно быть связано с этой проверкой?
Guest
= Warrant Officer =
Next rank: (- 1st Lieutenant -) after 42 messages
1028

Сообщение Отправлено: 13.09.07 20:28:43

zer0 :
Вот что мне сказали. Если честно, я не понял. КАКОГО итема? И ЧТО должно быть связано с этой проверкой?

Ох...

Actor LightSwitch
{
inventory.maxamount 1
-INVBAR // Это, впрочем, необязательно.
}


ACTOR Doom3Flashlight : Weapon 30030
{
...

Ready:
D3FG A 1 A_WeaponReady
TNT1 A 0 A_JumpIfInventory("LightSwitch", 1, 1)
LOOP
TNT1 A 0
D3FG A 1 A_FireCustomMissile ("FlshBall")
LOOP

Fire:
D3FG A 0
D3FG A 0 A_JumpIfInventory("LightSwitch", 1, 3)
D3FG A 1 A_GiveInventory("LightSwitch", 1)
D3FG A 1 A_PlaySound(string soundname) //если захочешь озвучить щелчок выключателя
GOTO Ready
D3FG A 0
D3FG A 1 A_TakeInventory("LightSwitch", 1)
D3FG A 1 A_PlaySound(string soundname)
GOTO Ready

Что-то в этом духе. Писал на коленке, поэтому могут быть ошибки. Время, необходимое на данные действия прикинешь сам, единички там стоят условно.


zer0 :
Но единственный косяк, что в таком случае с ним как раз и можно "как со струей" играться... Впрочем, не то, чтобы это было бы сильно плохо. Однако жаль, что нет эффекта рассеивания света.

Здесь тоже есть возможность поиграться с параметрами и попытаться достичь приемлемого результата без снижения скорости. Рассеяние тоже можно попробовать (думаю знаю как, хотя заранее не обещаю, что будет выглядеть как надо, ибо раньше не делал)
zer0
- Lance Corporal -
Next rank: (= Lance Corporal =) after 21 messages
189

Сообщение Отправлено: 13.09.07 20:59:45

Guest
спасибо, это уже лучше Smile Я ж полный ламер в декорейте, прошу учитывать...

Я не все понял, но сейчас попробую разобраться...
Falcor
- Sergeant Major -
Next rank: (= Sergeant Major =) after 43 messages
577

Сообщение Отправлено: 13.09.07 21:01:45

zer0 :
разве в Ready вообще нужно что-то про этот итем писать?

Еще как нужно.
По сути, фонарь стреляет светом на стейте [Ready], а стейт [Fire] используется лишь для переключения режима ВКЛ/ВЫКЛ.
zer0
- Lance Corporal -
Next rank: (= Lance Corporal =) after 21 messages
189

Сообщение Отправлено: 13.09.07 21:02:59

Да, я снова кое-что напутал... сейчас попробую вписать все так.
Guest
= Warrant Officer =
Next rank: (- 1st Lieutenant -) after 42 messages
1028

Сообщение Отправлено: 13.09.07 21:12:49

zer0 :
разве в Ready вообще нужно что-то про этот итем писать?

Декорейт в известный границах довольно гибкая штука; тебе не все равно, из-под какого стейта работает актор? Тут вопрос удобства, а в нашем случае даже и необходимость. Все эти "реди", "селекты" и пр. - ярлыки для движка, а не тебя. Кстати, последняя версия Здума позволяет создавать свои стейты, если на то есть необходимость. Например, какое-то действия актора засунуть в стейт VinnyPooh, и адресовать по необходимости туда GOTO VinnyPooh. Я абсолютно серъезно.
Falcor
- Sergeant Major -
Next rank: (= Sergeant Major =) after 43 messages
577

Сообщение Отправлено: 13.09.07 21:14:21

Guest :
Кстати, последняя версия Здума позволяет создавать свои стейты, если на то есть необходимость.

Так-так-так-так...
Постой. Не пнешь ссылкой? Surprised
Это мне будет очень полезно. Smile
zer0
- Lance Corporal -
Next rank: (= Lance Corporal =) after 21 messages
189

Сообщение Отправлено: 13.09.07 21:14:42

Гм... в общем, как бы получилось. Но кое-какие неприятственные вещи есть... Например, "включенный" свет дергается - это, я думаю, естественно, раз поток проджектайлов идет не беспрерывно, а постоянно появляясь и исчезая. Во-вторых, на нажатие фонарь реагирует как-то дерганно... надо очень быстро и аккуратно стукнуть по кнопке, иначе он может не включиться, а если зажать - включится, и выключиться, когда кнопка отожмется. Поэтому, я не знаю, может обойтись более простым вариантом...
Falcor
- Sergeant Major -
Next rank: (= Sergeant Major =) after 43 messages
577

Сообщение Отправлено: 13.09.07 21:16:58

zer0 :
Во-вторых, на нажатие фонарь реагирует как-то дерганно... надо очень быстро и аккуратно стукнуть по кнопке, иначе он может не включиться, а если зажать - включится, и выключиться, когда кнопка отожмется.

Кажется, что-то было для таких случаев...
К сожалению, точно не помню, но Гест должен знать
(ЗЫ: Гест, сорри, что стрелки перевожу... Embarassed)
Guest
= Warrant Officer =
Next rank: (- 1st Lieutenant -) after 42 messages
1028

Сообщение Отправлено: 13.09.07 21:33:09

Falcor :
Постой. Не пнешь ссылкой?

Кину ссылку на мод WW, где это применялось, когда найду.

zer0 :
Поэтому, я не знаю, может обойтись более простым вариантом...

А это и есть простой вариант Smile Тюнить нужно, а не руки опускать.

zer0 :
Во-вторых, на нажатие фонарь реагирует как-то дерганно... надо очень быстро и аккуратно стукнуть по кнопке, иначе он может не включиться, а если зажать - включится, и выключиться, когда кнопка отожмется.

Это происходит из-за того, что переключение занимает слишком мало времени. Чтобы лучше реагировал на переключения, стоит удлинить промежуток WeaponReady, а поскольку это увиличивает паузы между пусками прожектайлов, то лечить надо так - прожектайл в полете периодически выпускает такие же прожектайлы, как и он сам (есс-но в том же направлении), но скорость которых чуть меньше. Отставая, они будут заполнять промежутки и освещать их. Если надо, они в свою очередь так же могут выпускать еще более медленные фонарики. Скорости нужно подбирать самому, пока не начнет нравится, заочно не насоветуешь.

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

Короче, все проблемы лечатся терпеливой настройкой, это точно говорю.
zer0
- Lance Corporal -
Next rank: (= Lance Corporal =) after 21 messages
189

Сообщение Отправлено: 13.09.07 21:36:54

Guest
насчет рассеяния по кадрам - до этого я уже догадался и сделал. А вот насчет выпуска проджектайлами других... Это типа надо в спауне самого актора-проджектайла писать запуск другого через A_FireCustomMissile?
Shadowman
Lieutenant Colonel
Next rank: (- Colonel -) after 105 messages
1985

Сообщение Отправлено: 13.09.07 21:41:38

zer0
Вот простой пример таких проджектайлов:
ACTOR CannonFireBall
{
obituary "%o rode %k's fireball."
radius 11
height 8
speed 25
damage 20
seesound "weapons/rocklf"
deathsound "weapons/rocklx"
PROJECTILE
+RANDOMIZE
states
{
Spawn:
FIRB AAAA 1 bright A_CustomMissile("FireBallTrail",0,0,0)
loop
Death:
FIRB B 4 bright A_Explode
FIRB C 4 bright
FIRB DEFGHIJ 4 bright
stop
}
}

ACTOR FireBallTrail
{
RENDERSTYLE Translucent
Alpha 0.35
+NOBLOCKMAP
+NOGRAVITY
States
{
Spawn:
FIRT AABBCCDDEE 2
Stop
}
}
По необходимости скорость у "следа" может быть не нулевая, также "следы" могут выпускать вторичные следы и т.д. до нужной густоты.
Guest
= Warrant Officer =
Next rank: (- 1st Lieutenant -) after 42 messages
1028

Сообщение Отправлено: 13.09.07 21:41:46

zer0 :
Это типа надо в спауне самого актора-проджектайла писать запуск другого через A_FireCustomMissile?

Не обязательно в спауне, где удобно. Только не A_FireCustomMissile, поскольку вроде это только функция оружия, а "автором" яаляется уже сторонний актор, а не фонарик, а A_CustomMissile.
zer0
- Lance Corporal -
Next rank: (= Lance Corporal =) after 21 messages
189

Сообщение Отправлено: 13.09.07 22:31:32

что означает текст ошибки:
Expected ',', got ')'
?

В принципе, что это значит ,я понимаю, но не понимаю, почему. Он спотыкается на строчке

FLBL A 1 A_CustomMissile("Flshball1,0,0,0")


Это текст в акторе Flshball. Flshball1 должен быть его "следом"...
Falcor
- Sergeant Major -
Next rank: (= Sergeant Major =) after 43 messages
577

Сообщение Отправлено: 13.09.07 22:34:14

FLBL A 1 A_CustomMissile("Flshball1",0,0,0)

Так будет правильнее.
Guest
= Warrant Officer =
Next rank: (- 1st Lieutenant -) after 42 messages
1028

Сообщение Отправлено: 13.09.07 22:35:01

Falcor :
Постой. Не пнешь ссылкой?

Вот, вроде оно. Ссылка на скачку в первом посте страницы (вроде рабочая):
http://forum.drdteam.org/viewtopic.php?t=35&...asc&start=585
Falcor
- Sergeant Major -
Next rank: (= Sergeant Major =) after 43 messages
577

Сообщение Отправлено: 13.09.07 22:36:30

Guest :
Вот, вроде оно.

Спс Smile
Будем учиться дальше Shocked
zer0
- Lance Corporal -
Next rank: (= Lance Corporal =) after 21 messages
189

Сообщение Отправлено: 14.09.07 06:36:42

Не-а, не вижу эффекта, не получается...

Вот как оно выглядит:


actor Flshball
{
radius 8
height 8
speed 128
renderstyle Add
alpha 0.75
PROJECTILE
+NOBLOCKMAP
+NOGRAVITY
states
{
Spawn:
FLBL A 1 A_CustomMissile("Flshball1",0,0,0)
FLBL BCDEF 1 bright
goto Death
Death:
FLBL F 1 bright
stop
}
}

actor Flshball1
{
radius 8
height 8
renderstyle Add
alpha 0.75
+NOBLOCKMAP
+NOGRAVITY
states
{
Spawn:
FLBL A 1 A_CustomMissile("Flshball2",0,0,0)
FLBL BCDEF 1 bright
goto Death
Death:
FLBL F 1 bright
stop
}
}

actor Flshball2
{
radius 8
height 8
renderstyle Add
alpha 0.75
+NOBLOCKMAP
+NOGRAVITY
states
{
Spawn:
FLBL A 1 A_CustomMissile("Flshball3",0,0,0)
FLBL BCDEF 1 bright
goto Death
Death:
FLBL F 1 bright
stop
}
}

actor Flshball3
{
radius 8
height 8
renderstyle Add
alpha 0.75
+NOBLOCKMAP
+NOGRAVITY
states
{
Spawn:
FLBL ABCDEF 1 bright
goto Death
Death:
FLBL F 1 bright
stop
}
}



Вначале я еще ставил им скорость. Первому 128, второму 64, потом 32... но все было точно так же.
Falcor
- Sergeant Major -
Next rank: (= Sergeant Major =) after 43 messages
577

Сообщение Отправлено: 14.09.07 06:47:44

Полагаю, здесь уже можно помочь лишь тонкой настройкой.
dukenator
UAC Sergeant Major
Next rank: (Chief Petty Officer) after 56 messages
704

Сообщение Отправлено: 14.09.07 10:13:44

А вот как сделать оружие, выстрел которого притягивает к себе врагов?
Falcor
- Sergeant Major -
Next rank: (= Sergeant Major =) after 43 messages
577

Сообщение Отправлено: 14.09.07 10:35:24

dukenator
Кажется, в wrw.wad был гарпун, если тебе интересно.
zer0
- Lance Corporal -
Next rank: (= Lance Corporal =) after 21 messages
189

Сообщение Отправлено: 14.09.07 12:04:04

Falcor
Но вот Shadowman привел пример рокеттрейла (там даже скорости у трейла не было, кстати, почему?), и я в основном скопировал - но эффекта не видно вообще. Я думаю, если бы просто были криво подобраны параметры, хоть что-то было бы заметно...

Вообще, это не самое важное. Я хотел попросить другое.
Вернемся к описанию "кнопки ВКЛ/ВЫКЛ" от Guest'а:


Actor LightSwitch
{
inventory.maxamount 1
-INVBAR // Это, впрочем, необязательно.
}


ACTOR Doom3Flashlight : Weapon 30030
{
...

Ready:
D3FG A 1 A_WeaponReady
TNT1 A 0 A_JumpIfInventory("LightSwitch", 1, 1)
LOOP
TNT1 A 0
D3FG A 1 A_FireCustomMissile ("FlshBall")
LOOP

Fire:
D3FG A 0
D3FG A 0 A_JumpIfInventory("LightSwitch", 1, 3)
D3FG A 1 A_GiveInventory("LightSwitch", 1)
D3FG A 1 A_PlaySound(string soundname) //если захочешь озвучить щелчок выключателя
GOTO Ready
D3FG A 0
D3FG A 1 A_TakeInventory("LightSwitch", 1)
D3FG A 1 A_PlaySound(string soundname)
GOTO Ready



Я был бы ПРЕМНОГО благодарен, если понимающий человек даст мне комментарии к... ну, наверное, к каждой строчке - описание, как действует JumpIfInventory и проч., т.к. я хоть и читал ВИКИ, кое-что мне не совсем понятно. А то Guest услужливо откомментировал единственную строчку, которая как раз и была абсолютно понятна... В общем, помогите мне продолжить обучение декорейту, пожалуйста Surprised

ADDED:

И еще одна важная штука. Я в KEYCONF как положено создал новый раздел под кнопки, где есть функция Reload. Она у меня упорно отказывается работать. Выглядит это так (выдрано из Zdoom advanced):

addmenukey "Reload" +z_reload
alias +z_reload "use ReloadActive"
alias -z_reload "use ReloadCancel"
defaultbind r +z_reload

Я не совсем понимаю - на что ссылается "use ReloadActive" и "use ReloadCancel"?
Shadowman
Lieutenant Colonel
Next rank: (- Colonel -) after 105 messages
1985

Сообщение Отправлено: 14.09.07 13:04:28

zer0 :
(там даже скорости у трейла не было, кстати, почему?),

Cкорость не ставил, так как она нулевая (и по умолчанию оно и задает 0).
Насчет команд: A_JumpIfInventory("LightSwitch", x, y) - перебрасывает на стейт +y к текущему, если в инвентаре находится предмет LightSwitch, в количестве хотя бы x.
Имхо в вики про это достаточно понятно написано.
zer0
Ты лучше сперва сооруди какую-нибудь пушку попроще, а то сразу за фонарь взялся. Вот на ее примере и обкатаешь базовые вещи оружейного декорэйта, а потом уже и фонарь сделаешь Smile
Про релоад - это к Guest'у.
zer0
- Lance Corporal -
Next rank: (= Lance Corporal =) after 21 messages
189

Сообщение Отправлено: 14.09.07 13:29:13

Shadowman
ну так если я решил делать такой вад, какой я решил, то и объекты к нему соответствующие... и фонарь - важнее всего. Кроме того, если не считать возможности "вкл/выкл", я уже добился практически того, что хотел. Я вообще уже успел воткнуть туда шотган и револьвер, правда с револьвером какие-то непонятки... все с тем же релоадом.

Про JumpIfInventory - смысл-то я понял. Только некоторые мелочи не совсем понятны. Например, что будет меняться, если я буду увеличивать число тиков в той строке, где стоит JumpIfInventory?
dukenator
UAC Sergeant Major
Next rank: (Chief Petty Officer) after 56 messages
704

Сообщение Отправлено: 14.09.07 13:39:03

Falcor
Выложи, пожалуйста!

ЗЫ Там сделано через LoreShot? интерестно...
ЗЗЫ Да не, мне нужно чтобы монстры притягивались не к игроку, а к шарику - выстрелу...
Falcor
- Sergeant Major -
Next rank: (= Sergeant Major =) after 43 messages
577

Сообщение Отправлено: 14.09.07 13:51:47

dukenator
http://www.doomworld.com/idgames/index.php?id=13852
Это версия 1.5а
Перезалейте куданить версию 2.2, если кто вытянет!
dukenator
UAC Sergeant Major
Next rank: (Chief Petty Officer) after 56 messages
704

Сообщение Отправлено: 14.09.07 14:01:48

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

Ничего особо выдающегося не будет...
В той строке, где у тебя стоит jumpifinventory всегда ставь ноль тиков - так будет надежнее.
Страница 5 из 6 Перейти наверх Пред.  1, 2, 3, 4, 5, 6  След.
   Список разделов - Местечко Мапперов и Моддеров - Создание нового оружия в (г)здуме

© phpbb.com