Сайт Doom Power
 ПоискПоиск ВходВход
Создание нового оружия в (г)здуме Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.
   Список разделов - Местечко Мапперов и Моддеров - Создание нового оружия в (г)здуме
АвторСообщение
Guest
= 2nd Lieutenant =
Next rank: - Captain - after 68 points
1572

Doom Rate: 1.51
Сообщение Отправлено: 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
3 1
zer0
= Sergeant Major =
Next rank: UAC Sergeant Major after 63 points
697

Doom Rate: 1.23
Сообщение Отправлено: 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
}
}


Но единственный косяк, что в таком случае с ним как раз и можно "как со струей" играться... Впрочем, не то, чтобы это было бы сильно плохо. Однако жаль, что нет эффекта рассеивания света.
1
Guest
= 2nd Lieutenant =
Next rank: - Captain - after 68 points
1572

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

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

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

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

Тебе уже сказали, как это можно ПОПРОБОВАТЬ.
3 1
zer0
= Sergeant Major =
Next rank: UAC Sergeant Major after 63 points
697

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


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


Вот что мне сказали. Если честно, я не понял. КАКОГО итема? И ЧТО должно быть связано с этой проверкой?
1
Guest
= 2nd Lieutenant =
Next rank: - Captain - after 68 points
1572

Doom Rate: 1.51
Сообщение Отправлено: 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 :
Но единственный косяк, что в таком случае с ним как раз и можно "как со струей" играться... Впрочем, не то, чтобы это было бы сильно плохо. Однако жаль, что нет эффекта рассеивания света.

Здесь тоже есть возможность поиграться с параметрами и попытаться достичь приемлемого результата без снижения скорости. Рассеяние тоже можно попробовать (думаю знаю как, хотя заранее не обещаю, что будет выглядеть как надо, ибо раньше не делал)
3 1
zer0
= Sergeant Major =
Next rank: UAC Sergeant Major after 63 points
697

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

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

Я не все понял, но сейчас попробую разобраться...
1
Falcor
- Sergeant -
Next rank: = Sergeant = after 35 points
405

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

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

Еще как нужно.
По сути, фонарь стреляет светом на стейте [Ready], а стейт [Fire] используется лишь для переключения режима ВКЛ/ВЫКЛ.
1
zer0
= Sergeant Major =
Next rank: UAC Sergeant Major after 63 points
697

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

Да, я снова кое-что напутал... сейчас попробую вписать все так.
1
Guest
= 2nd Lieutenant =
Next rank: - Captain - after 68 points
1572

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

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

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

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

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

Так-так-так-так...
Постой. Не пнешь ссылкой? Surprised
Это мне будет очень полезно. Smile
1
zer0
= Sergeant Major =
Next rank: UAC Sergeant Major after 63 points
697

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

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

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

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

Кажется, что-то было для таких случаев...
К сожалению, точно не помню, но Гест должен знать
(ЗЫ: Гест, сорри, что стрелки перевожу... Embarassed)
1
Guest
= 2nd Lieutenant =
Next rank: - Captain - after 68 points
1572

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

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

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

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

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

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

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

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

Короче, все проблемы лечатся терпеливой настройкой, это точно говорю.
3 1
zer0
= Sergeant Major =
Next rank: UAC Sergeant Major after 63 points
697

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

Guest
насчет рассеяния по кадрам - до этого я уже догадался и сделал. А вот насчет выпуска проджектайлами других... Это типа надо в спауне самого актора-проджектайла писать запуск другого через A_FireCustomMissile?
1
Shadowman
UAC General
Next rank: Unavailable after 0 points
4393

Doom Rate: 1.66
Сообщение Отправлено: 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
}
}
По необходимости скорость у "следа" может быть не нулевая, также "следы" могут выпускать вторичные следы и т.д. до нужной густоты.
1 5 2
Guest
= 2nd Lieutenant =
Next rank: - Captain - after 68 points
1572

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

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

Не обязательно в спауне, где удобно. Только не A_FireCustomMissile, поскольку вроде это только функция оружия, а "автором" яаляется уже сторонний актор, а не фонарик, а A_CustomMissile.
3 1
zer0
= Sergeant Major =
Next rank: UAC Sergeant Major after 63 points
697

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

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

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

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


Это текст в акторе Flshball. Flshball1 должен быть его "следом"...
1
Falcor
- Sergeant -
Next rank: = Sergeant = after 35 points
405

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

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

Так будет правильнее.
1
Guest
= 2nd Lieutenant =
Next rank: - Captain - after 68 points
1572

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

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

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

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

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

Спс Smile
Будем учиться дальше Shocked
1
zer0
= Sergeant Major =
Next rank: UAC Sergeant Major after 63 points
697

Doom Rate: 1.23
Сообщение Отправлено: 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... но все было точно так же.
1
Falcor
- Sergeant -
Next rank: = Sergeant = after 35 points
405

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

Полагаю, здесь уже можно помочь лишь тонкой настройкой.
1
dukenator
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
972

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

А вот как сделать оружие, выстрел которого притягивает к себе врагов?
1 1
Falcor
- Sergeant -
Next rank: = Sergeant = after 35 points
405

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

dukenator
Кажется, в wrw.wad был гарпун, если тебе интересно.
1
zer0
= Sergeant Major =
Next rank: UAC Sergeant Major after 63 points
697

Doom Rate: 1.23
Сообщение Отправлено: 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"?
1
Shadowman
UAC General
Next rank: Unavailable after 0 points
4393

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

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

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

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

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

Про JumpIfInventory - смысл-то я понял. Только некоторые мелочи не совсем понятны. Например, что будет меняться, если я буду увеличивать число тиков в той строке, где стоит JumpIfInventory?
1
dukenator
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
972

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

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

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

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

dukenator
http://www.doomworld.com/idgames/index.php?id=13852
Это версия 1.5а
Перезалейте куданить версию 2.2, если кто вытянет!
1
dukenator
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
972

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

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

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