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

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

Так, с перезарядкой мне все стало более-менее ясно. Но вот есть косяк. Выдернул я из "WW-Diaz" револьвер, заставил его у себя работать. Теперь начал пытаться заставить его автоматически перезаряжаться, когда барабан пустеет (в WW-Diaz он перезаряжается только reload), и, в качестве образца, стал смотреть на выдранную из Zdoom Advanced Weapons двустволку, которая успешно перезаряжается и кнопкой и по опустении боезапаса. Вот какой у меня получился револьвер:


ACTOR Revolver : Weapon 30301
{
//$Category weapons
Inventory.PickupMessage "I got a Revolver"
Inventory.PickupSound "webpick"
Weapon.AmmoType "MagnumClip"
Weapon.AmmoGive 0
Weapon.AmmoUse 1
Weapon.AmmoType2 "ExtraMagnumAmmo"
Weapon.AmmoGive2 2
Weapon.AmmoUse2 0
Radius 12
Height 12
scale 0.35
+AMMO_OPTIONAL
+NOEXTREMEDEATH
+NOAUTOFIRE
States
{
Spawn:
REVP A 1
LOOP
Select:
REVG A 1 A_Raise
Loop
Deselect:
REVG A 1 A_Lower
Loop
Ready:
REVG A 0 A_JumpIfInventory("Reload",1,2)
REVG A 1 A_WeaponReady
Loop
//Reload:
TNT1 A 0 A_JumpIfInventory("MagnumClip",4,2)
TNT1 A 0 A_JumpIfInventory("ExtraMagnumAmmo",1,2)
TNT1 A 0 A_WeaponReady
Goto Ready+1
REVR ABC 2
REVR D 3 A_PlayWeaponSound("webload")
REVR EFH 3
REVR I 25
TNT1 A 0 A_TakeInventory("ExtraMagnumAmmo",1)
TNT1 A 0 A_GiveInventory("MagnumClip",7)
REVR J 3
REVR KL 4
REVR M 3
REVR NO 5
REVR PQ 2
REVR RS 1
REVG ABAABBAAABBB 1
goto Ready
Fire:
REVG A 0 A_JumpIfNoAmmo(6)
REVG A 0 A_PlayWeaponSound("webfire")
REVG BA 2
REVF A 0 BRIGHT A_GunFlash
REVF A 2 BRIGHT A_FireBullets(2,1,-1,30,0,1)
REVG D 1 A_FireCustomMissile("PistolSmokeSpawner",0,0,6,8)
REVG FEDCAA 1
Goto Ready
REVG A 0 A_WeaponReady
Goto Ready+2
AltFire:
REVG C 2
REVM A 2 A_PlayWeaponSound("melee/swing")
REVM B 1
REVM C 1 A_CustomPunch(5,0,0,"HitPuff")
REVM DE 1
REVM FGHI 2
REVG A 2
Goto Ready
Flash:
TNT1 A 0
TNT1 A 2 A_Light2
TNT1 A 2 A_Light1
TNT1 A 1 A_Light0
Stop
}
}


Ну и не хочет он перезаряжаться автоматически, никак. При нажатии reload - все как надо, а когда просто пустеет магазин - только выдает свой стандартный сиквенс (просто прокрутка барабана вхолостую), и ничего больше. Сижу, пялюсь, не могу понять, в чем тут дело...

ADDED:

А также мне интересно, можно ли заставить оружие стрелять сразу несколькими видами проджектайлов? Причем не по очереди, а одновременно.
Guest
= Warrant Officer =
Next rank: (- 1st Lieutenant -) after 42 messages
1028

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

dukenator :
В той строке, где у тебя стоит jumpifinventory всегда ставь ноль тиков - так будет надежнее.

Поясни, чем надежнее?

zer0 :
а когда просто пустеет магазин - только выдает свой стандартный сиквенс

Собственно и не должен, из того что написано.

zer0 :
А также мне интересно, можно ли заставить оружие стрелять сразу несколькими видами проджектайлов? Причем не по очереди, а одновременно.

В Греции все есть.
Shadowman
Lieutenant Colonel
Next rank: (- Colonel -) after 105 messages
1985

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

zer0 :
Причем не по очереди, а одновременно.

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

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

Ладно, к черту этот револьвер. Оставлю так. Это даже будет давать хороший эффект, учитывая тематику того, над чем я работаю...

Shadowman
ну так вроде говорилось, что против запуска снаряда не стоит ставить 0. Лично у меня при этом игра вылетает при попытке стрелять.
Shadowman
Lieutenant Colonel
Next rank: (- Colonel -) after 105 messages
1985

Сообщение Отправлено: 15.09.07 00:24:40

zer0
А зачем при всех ноль? Ставь на последнем выстреле число, а на предыдущих нули.
dukenator
UAC Sergeant Major
Next rank: (Chief Petty Officer) after 56 messages
704

Сообщение Отправлено: 15.09.07 02:38:03

Guest :
Поясни, чем надежнее?

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

Люди, объясните пожалуйста, как сделать оружие типа БФГ, чтобы к шарику притягивало монстров!
zer0
- Lance Corporal -
Next rank: (= Lance Corporal =) after 21 messages
189

Сообщение Отправлено: 15.09.07 10:57:10

Люди, а вот у меня проблема с картинками... Мне, значит, понадобилось сделать обычную руку, держащую фонарь, без перчатки (та, что в Doom 3 Weapons мне не подходила). И где ее взять? Подумал сделать из обычной фотографии, но при перемене цвета в indexed получается очень посредственное изображение, а нарисовать его сам с нуля я вряд ли смогу... Может в качестве ресурсника что-нибудь подскажете? Smile


ADDED:
и еще... нет ли способа как-нибудь замедлить расход патронов у оружия? Ну, типа, чтобы оно использовало не 1 за выстрел, а меньше... я знаю, что цифры меньше 1 оно не воспринимает. Просто я пытался сделать у фонаря расходуемые батарейки, а в таком случае, чтобы полного заряда хватало хотя бы на 1.5 реальных часа, ему приходится ставить 600000 патронов, а быстро бегущие цифры выглядят не ахти как, да и к тому же в стандартном думовском HUD еще и не отображаются корректно...
dukenator
UAC Sergeant Major
Next rank: (Chief Petty Officer) after 56 messages
704

Сообщение Отправлено: 15.09.07 12:11:24

zer0
Сделай примерно вот так:
...
Fire:
FONR A 0 A_Jump(32,2)
FONR A 3 A_FireCustomMissile("Light",0,0,0)
Goto Ready
FONR A 3 A_FireCustomMissile("Light,0,1,0)
Goto Ready
...
При выстреле светом в 1/8 доле случаев 1 патрон расходуется, в остальных - 0.
Так можно снизить расход патронов.
Falcor
- Sergeant Major -
Next rank: (= Sergeant Major =) after 43 messages
577

Сообщение Отправлено: 15.09.07 12:39:07

dukenator
К черту рандом, проще сделать встроенный АЦС-скрипт.
dukenator
UAC Sergeant Major
Next rank: (Chief Petty Officer) after 56 messages
704

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

Falcor
Можно и АЦС, но это, по моему, будет уже перебор...

zer0
Ну зачем фонарь!?
Чувак, не с того надо начинать!
Учится делать оружие надо начинать или с пистолетов(без перезарядки и прочих гадостей жизни),
или с БФГ...
Guest
= Warrant Officer =
Next rank: (- 1st Lieutenant -) after 42 messages
1028

Сообщение Отправлено: 15.09.07 15:21:55

Что вы велосипед изобретаете? Сделать инвентори-счетчик, при каждом цикле добавляющий единицу. Когда накапливается, скажем, 5000, идет джамп с обнулением счетчика и вычитанием единицы настоящих "партонов".
zer0
- Lance Corporal -
Next rank: (= Lance Corporal =) after 21 messages
189

Сообщение Отправлено: 15.09.07 16:35:17

Ладно, ладно. Я отбросил эту идею. По определенным причинам ее полноценная реализация стала невозможной... но это не так важно.

dukenator
я не "учусь делать оружие". Я сейчас создаю новый вад, и вот впервые мне понадобились совершенно новые предметы. В частности, фонарь в этом ваде будет ОСНОВНОЙ вещью. Так что, умею я, не умею, а ради создания вада мне нужно было это как-то сделать... Кстати, в общем-то, я сделал, выглядит даже неплохо. Думаю, всем еще придется это увидеть, но не так уж скоро...
dukenator
UAC Sergeant Major
Next rank: (Chief Petty Officer) after 56 messages
704

Сообщение Отправлено: 16.09.07 03:11:26

zer0
Будет много темноты?

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

Сообщение Отправлено: 16.09.07 12:41:03

dukenator
будет не просто много темноты. Темнота будет, скажем так, править балом всюду и без исключения.
Что до стреляющего светящимися снарядами оружия - эта мысль мне уже пришла в голову. Собственно, как раз на ранней стадии переделывания фонаря, когда я по ошибке сделал так, что снаряды не исчезали, а оставались валяться на полу. Поэтому, возможно, я сделаю "парабеллум", который будет стрелять световыми снарядами, которые еще и можно будет использовать как оружие. Но я еще подумаю.

Кстати, в пику Думу 3: в моем ваде, когда держишь в руках револьвер, другой рукой герой держит фонарь, и вторичной атакой можно светить...
-=2002=-
Recruit
Next rank: (Marine) after 9 messages
1

Сообщение Отправлено: 13.11.07 23:11:15

Приветствую, господа.

У меня к вам единственный вопрос: как вынести перезарядку оружия с альтернативного огня на отдельную клавишу? Я пытался сделать сам "методом тыка" - не вышло....
dukenator
UAC Sergeant Major
Next rank: (Chief Petty Officer) after 56 messages
704

Сообщение Отправлено: 14.11.07 09:43:42

-=2002=-
Через ACS скрипты, расспроси об этом Guest'a, он в этом понимает...
Guest
= Warrant Officer =
Next rank: (- 1st Lieutenant -) after 42 messages
1028

Сообщение Отправлено: 14.11.07 11:53:05

ACS там ни при чем, делается через консольные команды. Вкратце идеология такова: в цикл READY-стейта вставляется чекер наличия специально созданного под это инветнори, если есть - идет редирект на перезарядку. Добавляются две специальные вещи, которые делают только одно - одна добавляет этот инвентори, другой отбирает.
Далее идут игры с консольными командами. Есть возможность привязать некий эффект не к нажатию клавиши клавиши, а к ее "отпусканию", этим и пользуются. При нажатии активируется "вещь", добавляющая специнвентори, отпустили - активируется "вещь", его забирающего. Хотя нажатие клавиши занимает мало времени, как правило цикл READY-стейта помещается в него целиком, поэтому среагировать успевает; если это условие не выполняются, могут возникать "осечки" перезарядки.

Описано все это здесь, в принципе можно тупо все сделать по образцу, особо не вникая в суть дела:
http://forum.drdteam.org/viewtopic.php?t=2063
Страница 6 из 6 Перейти наверх Пред.  1, 2, 3, 4, 5, 6
   Список разделов - Местечко Мапперов и Моддеров - Создание нового оружия в (г)здуме

© phpbb.com