AltFire:
TNT1 A 0 A_PlaySound("IronSights", 0)
TNT1 A 0 A_PlaySound("RAIL_ZM", 1)
TNT1 A 0 A_JumpIfInventory("Zoomed",1,"Zoomout")
TNT1 A 0 A_Giveinventory("Zoomed",1)
TNT1 A 0 A_Giveinventory("GoSpecial",1)
TNT1 A 0 A_SetCrosshair(5)
TNT1 A 0 A_ZoomFactor(0.1)
TNT1 A 0 A_Giveinventory("ADSmode",1)
RI2Z D 0
TNT1 A 0 A_JumpIfInventory("IsPrimalFire",1,"Fire2")
Goto Ready2
Zoomout:
TNT1 AAAAAAAAAAAAAA 0
RI2Z C 0
TNT1 A 0 A_SetCrosshair(0)
TNT1 A 0 A_Takeinventory("Zoomed",1)
TNT1 A 0 A_ZoomFactor(1.0)
TNT1 A 0 A_Takeinventory("ADSmode",1)
TNT1 A 0 A_JumpIfInventory("IsPrimalFire",1,"Fire")
Goto Ready+6
Keilin Fox а что тут? тут все работает, я в писолет по-быстрому вставил
Скрытый текст:
Actor Zoomed : Inventory
{inventory.maxamount 1}
ACTOR Pz : Weapon
{
Weapon.SelectionOrder 1900
Weapon.AmmoUse 1
Weapon.AmmoGive 20
Weapon.AmmoType "Clip"
Obituary "$OB_MPPISTOL"
+WEAPON.WIMPY_WEAPON
+NOAUTOFIRE
Inventory.Pickupmessage "$PICKUP_PISTOL_DROPPED"
Tag "$TAG_PISTOL"
States
{
Ready:
PISG A 1 A_WeaponReady
Loop
Deselect:
PISG A 1 A_Lower
Loop
Select:
PISG A 1 A_Raise
Loop
Fire:
PISG A 4
PISG B 6 A_FirePistol
PISG C 4
PISG B 5 A_ReFire
Goto Ready
Ready2:
PLSG A 1 A_WeaponReady
Loop
AltFire:
TNT1 A 0 A_PlaySound("IronSights", 0)
TNT1 A 0 A_PlaySound("RAIL_ZM", 1)
TNT1 A 0 A_JumpIfInventory("Zoomed",1,"Zoomout")
TNT1 A 0 A_Giveinventory("Zoomed",1)
TNT1 A 0 A_Giveinventory("GoSpecial",1)
TNT1 A 0 A_SetCrosshair(5)
TNT1 A 0 A_ZoomFactor(0.1)
TNT1 A 0 A_Giveinventory("ADSmode",1)
RI2Z D 0
TNT1 A 0 A_JumpIfInventory("IsPrimalFire",1,"Fire2")
Goto Ready2
Zoomout:
TNT1 AAAAAAAAAAAAAA 0
RI2Z C 0
TNT1 A 0 A_SetCrosshair(0)
TNT1 A 0 A_Takeinventory("Zoomed",1)
TNT1 A 0 A_ZoomFactor(1.0)
TNT1 A 0 A_Takeinventory("ADSmode",1)
TNT1 A 0 A_JumpIfInventory("IsPrimalFire",1,"Fire")
Goto Ready
Flash:
PISF A 7 Bright A_Light1
Goto LightDone
PISF A 7 Bright A_Light1
Goto LightDone
Spawn:
PIST A -1
Stop
}
}
MyNameIs Это интересно, теперь у меня выпадают разные, но только один итем
SpawnBox:
TNT1 AAA 0
TNT1 A 0 A_Print("YES")
TNT1 A 0 A_SpawnItemEx("Clip")
TNT1 A 0 A_Jump (100, "b1", "A1", "S1")
TNT1 A 0 A_Jump (100, "b1", "A1", "S1")
TNT1 A 0 A_Jump (100, "b1", "A1", "S1")
TNT1 A 0 A_Jump (100, "b1", "A1", "S1")
Stop
b1:
TNT1 A 0 A_SpawnItemEx("bint",0,0,0,frandom(2,4),0,frandom(2,4),random(1,360))
stop
A1:
TNT1 A 0 A_SpawnItemEx("Antiseptic",0,0,0,frandom(2,4),0,frandom(2,4),random(1,360))
stop
S1:
TNT1 A 0 A_SpawnItemEx("Stimpack1",0,0,0,frandom(2,4),0,frandom(2,4),random(1,360))
stop
Я понимаю, что оно переходит на один из стейтов, спавнит и останавливается (то есть в SpawnBox оно даже не доходит до других строк). А как бы его так зацыклить не на долго, или что еще можно придумать?
BETEPAH[iddqd] я так понял, надо, чтобы коробка плевалась рандомными предметами некоторое время?
да, вот эта сотня в А_Джампе - шанс того, что пройдет мимо и не прыгнет.
у меня есть такая мысль:
Скрытый текст:
ведь A_Overlay, насколько я понял, вроде бы работает не только в оружии?
This can be called by more than just the weapon; a player or CustomInventory item can also call this function.
Actor Done_yay : Inventory
{inventory.maxamount 1}
SpawnBox:
TNT1 A 0 A_Overlay (10, "Counter")//типа пускаем стейт, который идет парралельно основному
SpawnBox2:
TNT1 A 0 A_Print("YES")
TNT1 A 0 A_SpawnItemEx("Clip")
TNT1 A 0 A_JumpIfInventory("Done_yay",1,"ENOUGH")// и чекаем наличие завершение того стейта - счетчика
TNT1 A 0 A_Jump (256, "b1", "A1", "S1")
b1:
TNT1 A 1 A_SpawnItemEx("bint",0,0,0,frandom(2,4),0,frandom(2,4),random(1,360))
Goto SpawnBox2
A1:
TNT1 A 1 A_SpawnItemEx("Antiseptic",0,0,0,frandom(2,4),0,frandom(2,4),random(1,360))
Goto SpawnBox2
S1:
TNT1 A 1 A_SpawnItemEx("Stimpack1",0,0,0,frandom(2,4),0,frandom(2,4),random(1,360))
Goto SpawnBox2
ENOUGH: //горшочек, не вари
Stop
Counter:
TNT1 A 10
TNT1 A 0 A_Giveinventory("Done_yay",1)
Stop
UPD: фу ты блин, забыл поставить не нули в спавне
UPD2: а еще забыл, что надо, чтобы он не обновлял счетчик. дописал.
Добавлено спустя 55 секунд:
Keilin Fox
TNT1 A 0 A_ZoomFactor(0.1)
TNT1 A 0 A_ZoomFactor(1.0)
BETEPAH[iddqd] короче, способы, которые мне известны: "тупо в лоб" и "циклом через ACS".
я хотел как-то хитро, церез цикл, но без АЦСа. чет не вышло. надо было протестить.
блин.
вот способ "тупо в лоб". работает:
Скрытый текст:
ACTOR box 1243
{
+NOBLOCKMAP
Monster
States
{
Spawn:
TROO AB 10 A_Look
Loop
See:
TROO A 1 a_chase ("Melee","See",CHF_DONTMOVE)
Loop
Melee:
Death:
TROO IJ 8
TROO KL 6
Fire1:
TNT1 A 0 A_SpawnItemEx("Clip")
TNT1 A 0 A_Jump (256, "b1", "A1", "S1")
b1:TNT1 A 1 A_SpawnItemEx("chainsaw",0,0,0,frandom(2,4),0,frandom(2,4),random(1,360))
Goto Fire2
A1:TNT1 A 1 A_SpawnItemEx("Pistol",0,0,0,frandom(2,4),0,frandom(2,4),random(1,360))
Goto Fire2
S1:TNT1 A 1 A_SpawnItemEx("Shotgun",0,0,0,frandom(2,4),0,frandom(2,4),random(1,360))
Goto Fire2
Fire2:
TNT1 A 0 A_SpawnItemEx("Clip")
TNT1 A 0 A_Jump (256, "b2", "A2", "S2")
b2:TNT1 A 1 A_SpawnItemEx("chainsaw",0,0,0,frandom(2,4),0,frandom(2,4),random(1,360))
Goto Fire3
A2:TNT1 A 1 A_SpawnItemEx("Pistol",0,0,0,frandom(2,4),0,frandom(2,4),random(1,360))
Goto Fire3
S2:TNT1 A 1 A_SpawnItemEx("Shotgun",0,0,0,frandom(2,4),0,frandom(2,4),random(1,360))
Goto Fire3
Fire3:
TNT1 A 0 A_SpawnItemEx("Clip")
TNT1 A 0 A_Jump (256, "b3", "A3", "S3")
b3:TNT1 A 1 A_SpawnItemEx("chainsaw",0,0,0,frandom(2,4),0,frandom(2,4),random(1,360))
Goto Fire4
A3:TNT1 A 1 A_SpawnItemEx("Pistol",0,0,0,frandom(2,4),0,frandom(2,4),random(1,360))
Goto Fire4
S3:TNT1 A 1 A_SpawnItemEx("Shotgun",0,0,0,frandom(2,4),0,frandom(2,4),random(1,360))
Goto Fire4
Fire4:
TNT1 A 0 A_SpawnItemEx("Clip")
TNT1 A 0 A_Jump (256, "b4", "A4", "S4")
b4:TNT1 A 1 A_SpawnItemEx("chainsaw",0,0,0,frandom(2,4),0,frandom(2,4),random(1,360))
Stop
A4:TNT1 A 1 A_SpawnItemEx("Pistol",0,0,0,frandom(2,4),0,frandom(2,4),random(1,360))
Stop
S4:TNT1 A 1 A_SpawnItemEx("Shotgun",0,0,0,frandom(2,4),0,frandom(2,4),random(1,360))
Stop
}
}
А как, через декорейт? (Когда допустим использую предмет)
ACS_Execute() - вызывает скрипт с данным номером, но запустить ещё один такой скрипт не получится, пока не остановится запущенный
ACS_ExecuteAlways() - вызывает скрипт с данным номером без лимита на запуск, т.е. можно запустить этот же скрипт, пока не остановился старый.
Доброго времени суток! нужно сделать так, чтобы при отрывании чеки от гранаты воспроизводился дополнительный (второй звук) тоесть реплика + чека. в соинд инфо нашел это: