| Автор | Сообщение | 
	
		| zer0 - Lance Corporal -
 
 |  |  | 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 =
 
 |  |  | 1028 | 
 
 | 
			
				|  Отправлено: 14.09.07 18:44:53 |  |  | 
 |  |  	  | dukenator : |  	  | В той строке, где у тебя стоит jumpifinventory всегда ставь ноль тиков - так будет надежнее. | 
 Поясни, чем надежнее?
 
 
  	  | zer0 : |  	  | а когда просто пустеет магазин - только выдает свой стандартный сиквенс | 
 Собственно и не должен, из того что написано.
 
 
  	  | zer0 : |  	  | А также мне интересно, можно ли заставить оружие стрелять сразу несколькими видами проджектайлов? Причем не по очереди, а одновременно. | 
 В Греции все есть.
 |  |  |  | 
        
		|  |  | 
	
		| Shadowman Lieutenant Colonel
 
 |  |  | 1985 | 
 
 | 
			
				|  Отправлено: 14.09.07 19:27:04 |  |  | 
 |  |  	  | zer0 : |  	  | Причем не по очереди, а одновременно. | 
 "Одновременность" достигается тем, что указываешь величину тика = 0 напротив каждой строчки, испускающей снаряд. Вот и все.
 |  |  |  | 
        
		|  |  | 
	
		| zer0 - Lance Corporal -
 
 |  |  | 189 | 
 
 | 
			
				|  Отправлено: 14.09.07 22:28:23 |  |  | 
 |  | Ладно, к черту этот револьвер. Оставлю так. Это даже будет давать хороший эффект, учитывая тематику того, над чем я работаю... 
 Shadowman
 ну так вроде говорилось, что против запуска снаряда не стоит ставить 0. Лично у меня при этом игра вылетает при попытке стрелять.
 |  |  |  | 
        
		|  |  | 
	
		| Shadowman Lieutenant Colonel
 
 |  |  | 1985 | 
 
 | 
			
				|  Отправлено: 15.09.07 00:24:40 |  |  | 
 |  | zer0 А зачем при всех ноль? Ставь на последнем выстреле число, а на предыдущих нули.
 |  |  |  | 
        
		|  |  | 
	
		| dukenator UAC Sergeant Major
 
 |  |  | 704 | 
 
 | 
			
				|  Отправлено: 15.09.07 02:38:03 |  |  | 
 |  |  	  | Guest : |  	  | Поясни, чем надежнее? | 
 Тем, что не будет задержки перед "прыжком", и если прыжок стоит в самом начале кода,
 то в случае инвентаря действие без задержки переместится на ту часть кода, куда идет прыжок.
 
 Люди, объясните пожалуйста, как сделать оружие типа БФГ, чтобы к шарику притягивало монстров!
 |  |  |  | 
        
		|  |  | 
	
		| zer0 - Lance Corporal -
 
 |  |  | 189 | 
 
 | 
			
				|  Отправлено: 15.09.07 10:57:10 |  |  | 
 |  | Люди, а вот у меня проблема с картинками... Мне, значит, понадобилось сделать обычную руку, держащую фонарь, без перчатки (та, что в Doom 3 Weapons мне не подходила). И где ее взять? Подумал сделать из обычной фотографии, но при перемене цвета в indexed получается очень посредственное изображение, а нарисовать его сам с нуля я вряд ли смогу... Может в качестве ресурсника что-нибудь подскажете?   
 
 ADDED:
 и еще... нет ли способа как-нибудь замедлить расход патронов у оружия? Ну, типа, чтобы оно использовало не 1 за выстрел, а меньше... я знаю, что цифры меньше 1 оно не воспринимает. Просто я пытался сделать у фонаря расходуемые батарейки, а в таком случае, чтобы полного заряда хватало хотя бы на 1.5 реальных часа, ему приходится ставить 600000 патронов, а быстро бегущие цифры выглядят не ахти как, да и к тому же в стандартном думовском HUD еще и не отображаются корректно...
 |  |  |  | 
        
		|  |  | 
	
		| dukenator UAC Sergeant Major
 
 |  |  | 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 -
 
 |  |  | 577 | 
 
 | 
			
				|  Отправлено: 15.09.07 12:39:07 |  |  | 
 |  | dukenator К черту рандом, проще сделать встроенный АЦС-скрипт.
 |  |  |  | 
        
		|  |  | 
	
		| dukenator UAC Sergeant Major
 
 |  |  | 704 | 
 
 | 
			
				|  Отправлено: 15.09.07 13:27:04 |  |  | 
 |  | Falcor Можно и АЦС, но это, по моему, будет уже перебор...
 
 zer0
 Ну зачем фонарь!?
 Чувак, не с того надо начинать!
 Учится делать оружие надо начинать или с пистолетов(без перезарядки и прочих гадостей жизни),
 или с БФГ...
 |  |  |  | 
        
		|  |  | 
	
		| Guest = Warrant Officer =
 
 |  |  | 1028 | 
 
 | 
			
				|  Отправлено: 15.09.07 15:21:55 |  |  | 
 |  | Что вы велосипед изобретаете? Сделать инвентори-счетчик, при каждом цикле добавляющий единицу. Когда накапливается, скажем, 5000, идет джамп с обнулением счетчика и вычитанием единицы настоящих "партонов". |  |  |  | 
        
		|  |  | 
	
		| zer0 - Lance Corporal -
 
 |  |  | 189 | 
 
 | 
			
				|  Отправлено: 15.09.07 16:35:17 |  |  | 
 |  | Ладно, ладно. Я отбросил эту идею. По определенным причинам ее полноценная реализация стала невозможной... но это не так важно. 
 dukenator
 я не "учусь делать оружие". Я сейчас создаю новый вад, и вот впервые мне понадобились совершенно новые предметы. В частности, фонарь в этом ваде будет ОСНОВНОЙ вещью. Так что, умею я, не умею, а ради создания вада мне нужно было это как-то сделать... Кстати, в общем-то, я сделал, выглядит даже неплохо. Думаю, всем еще придется это увидеть, но не так уж скоро...
 |  |  |  | 
        
		|  |  | 
	
		| dukenator UAC Sergeant Major
 
 |  |  | 704 | 
 
 | 
			
				|  Отправлено: 16.09.07 03:11:26 |  |  | 
 |  | zer0 Будет много темноты?
 
 А можно еще сделать гранатомет, который в режиме альтогня жахал бы светящимися снарядами,
 которые прилипали бы к стенам и изчезали - была бы неплохая замена фонарю...
 |  |  |  | 
        
		|  |  | 
	
		| zer0 - Lance Corporal -
 
 |  |  | 189 | 
 
 | 
			
				|  Отправлено: 16.09.07 12:41:03 |  |  | 
 |  | dukenator будет не просто много темноты. Темнота будет, скажем так, править балом всюду и без исключения.
 Что до стреляющего светящимися снарядами оружия - эта мысль мне уже пришла в голову. Собственно, как раз на ранней стадии переделывания фонаря, когда я по ошибке сделал так, что снаряды не исчезали, а оставались валяться на полу. Поэтому, возможно, я сделаю "парабеллум", который будет стрелять световыми снарядами, которые еще и можно будет использовать как оружие. Но я еще подумаю.
 
 Кстати, в пику Думу 3: в моем ваде, когда держишь в руках револьвер, другой рукой герой держит фонарь, и вторичной атакой можно светить...
 |  |  |  | 
        
		|  |  | 
	
		| -=2002=- Recruit
 
 |  |  | 1 | 
 
 | 
			
				|  Отправлено: 13.11.07 23:11:15 |  |  | 
 |  | Приветствую, господа. 
 У меня к вам единственный вопрос: как вынести перезарядку оружия с альтернативного огня на отдельную клавишу? Я пытался сделать сам "методом тыка" - не вышло....
 |  |  |  | 
        
		|  |  | 
	
		| dukenator UAC Sergeant Major
 
 |  |  | 704 | 
 
 | 
			
				|  Отправлено: 14.11.07 09:43:42 |  |  | 
 |  | -=2002=- Через ACS скрипты, расспроси об этом Guest'a, он в этом понимает...
 |  |  |  | 
        
		|  |  | 
	
		| Guest = Warrant Officer =
 
 |  |  | 1028 | 
 
 | 
			
				|  Отправлено: 14.11.07 11:53:05 |  |  | 
 |  | ACS там ни при чем, делается через консольные команды. Вкратце идеология такова: в цикл READY-стейта вставляется чекер наличия специально созданного под это инветнори, если есть - идет редирект на перезарядку. Добавляются две специальные вещи, которые делают только одно - одна добавляет этот инвентори, другой отбирает. Далее идут игры с консольными командами. Есть возможность привязать некий эффект не к нажатию клавиши клавиши, а к ее "отпусканию", этим и пользуются. При нажатии активируется "вещь", добавляющая специнвентори, отпустили - активируется "вещь", его забирающего. Хотя нажатие клавиши занимает мало времени, как правило цикл READY-стейта помещается в него целиком, поэтому среагировать успевает; если это условие не выполняются, могут возникать "осечки" перезарядки.
 
 Описано все это здесь, в принципе можно тупо все сделать по образцу, особо не вникая в суть дела:
 http://forum.drdteam.org/viewtopic.php?t=2063
 |  |  |  | 
        
		|  |  |