Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
GZDoom / QZDoom Пред.  1, 2, 3 ... 41, 42, 43
   Список разделов - Doom и его порты - GZDoom / QZDoomОтветить
АвторСообщение
Shadowman
- UAC Commissar -
Next rank: = UAC Commissar = after 273 points
6027

Doom Rate: 2.26

Posts quality: +431
Ссылка на пост №841 Отправлено: 04.11.19 19:29:07
В новых гоззах перестал корректно работать код посоха из инквизитора3д (сам код был позаимствован в свое время из какого-то мода на Блад-тематику).
Раньше альт-атака вызывала череду последующих атак, как это прописано в коде. Теперь - только первый снаряд, который взрывается при попадании в цель, но не производит остальных акторов, как записано в его коде. Причины такого изменения поведения кода мне не понятны, т.к. еще в версии 4-1-3 все работало корректно.
Сам код здесь:
Скрытый текст:

//---------------SkullStaffAltShots-----------------------//

ACTOR SkullStaffAltShot1
{
   Radius 6
   Height 10
   Speed 16
   Damage (4*(ACS_ExecuteWithResult(814,0,0,0))+random(1,8))                          //EDIT THIS!!
   damagetype FireStaff
   +NOBLOCKMAP
   +NOGRAVITY
   +DROPOFF
   +MISSILE
   +NOTELEPORT
   +SEEKERMISSILE
   +RIPPER
   +BLOODLESSIMPACT
//   +FIREDAMAGE
   +DOOMBOUNCE
   +NOWALLBOUNCESND
   +NOEXPLODEFLOOR
   
   SeeSound "weapons/skullstaffshot2"
   DeathSound "weapons/skullstaffexplode2"
//   ExplosionDamage 96                                         //EDIT THIS!!
//   ExplosionRadius 128                                        //EDIT THIS!!
   RenderStyle Add
   Alpha 1.0
   States
   {
   Spawn:
      SKSS CCDDEE 1 Bright A_SeekerMissile(5,8)
      SKSS F 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS FFGGHH 1 Bright A_SeekerMissile(5,8)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack2",1,0,0)
      SKSS C 1 Bright A_SetTranslucent(0.8)
      SKSS C 1 Bright A_SetTranslucent(0.6)
      SKSS D 1 Bright A_SetTranslucent(0.4)
      SKSS D 1 Bright A_SetTranslucent(0.2)
      SKSS D 1 Bright A_SetTranslucent(0.1)
      Stop
   Death:
      SKSE A 5 Bright A_Explode(3*ACS_ExecuteWithResult(814,0,0,0),4*ACS_ExecuteWithResult(814,0,0,0))
      SKSE BCDEFGH 5 Bright
      Stop
   }
}

ACTOR SkullStaffAltAttack1
{  
   Radius 1
   Height 2
   +ISMONSTER
   +FRIENDLY
   +NOGRAVITY
   +NOCLIP
   RenderStyle None
   Obituary "%o was burned by a Lich Staff Fireball."
   States
   {
   Spawn:
      SKSS A 0 A_Look
   See:
      SKSS A 0 A_Chase
   Missile:
      SKSS A 0 A_FaceTarget
      SKSS A 1 A_SpawnProjectile("SkullStaffAltShot2",0,0,0)
      Stop
   }
}

ACTOR SkullStaffAltShot2
{
   Radius 4
   Height 8
   Speed 23
   Damage (0.5*ACS_ExecuteWithResult(814,0,0,0)+random(1,8))                                //EDIT THIS!!
   damagetype FireStaff
   Scale 0.4
   +NOBLOCKMAP
   +NOGRAVITY
   +DROPOFF
   +MISSILE
   +NOTELEPORT
   +SEEKERMISSILE
//   +FIREDAMAGE
   
   SeeSound "weapons/skullstaffshot1"
   DeathSound "weapons/skullstaffexplode1"
//   ExplosionDamage 24                                           //EDIT THIS!!
//   ExplosionRadius 48                                           //EDIT THIS!!
   RenderStyle Add
   Alpha 0.9
   States
   {
   Spawn:
      SKSS A 1 Bright A_BishopMissileWeave
      SKSS A 1 Bright A_SeekerMissile(12,15)
      SKSS B 1 Bright A_BishopMissileWeave
      SKSS B 1 Bright A_SeekerMissile(12,15)
      Loop
   Death:
      SKSE A 0 A_SetTranslucent(1,1)
      SKSE A 4 Bright A_Explode(ACS_ExecuteWithResult(814,0,0,0),2*ACS_ExecuteWithResult(814,0,0,0))
      SKSE BCDEFGH 4 Bright
      Stop
   }
}

ACTOR SkullStaffAltAttack2
{  
   Radius 1
   Height 2
   +ISMONSTER
   +FRIENDLY
   +NOGRAVITY
   +NOCLIP
   +CANPUSHWALLS
   RenderStyle None
   Obituary "%o was burned by a Skull Staff Fireball."
   States
   {
   Spawn:
      SKSS A 0 A_Look
   See:
      SKSS A 0 A_Chase
   Missile:
      SKSS A 0 A_FaceTarget
      SKSS A 1 A_SpawnProjectile("SkullStaffAltShot3",0,0,0)
      Stop
   }
}

ACTOR SkullStaffAltShot3 : SkullStaffAltShot1
{
   States
   {
   Spawn:
      SKSS CCDDEE 1 Bright A_SeekerMissile(5,8)
      SKSS F 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS FFGGHH 1 Bright A_SeekerMissile(5,8)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack3",1,0,0)
      SKSS C 1 Bright A_SetTranslucent(0.8)
      SKSS C 1 Bright A_SetTranslucent(0.6)
      SKSS D 1 Bright A_SetTranslucent(0.4)
      SKSS D 1 Bright A_SetTranslucent(0.2)
      SKSS D 1 Bright A_SetTranslucent(0.1)
      Stop
   }
}

ACTOR SkullStaffAltAttack3 : SkullStaffAltAttack2
{  
   States
   {
   Spawn:
      SKSS A 0 A_Look
   See:
      SKSS A 0 A_Chase
   Missile:
      SKSS A 0 A_FaceTarget
      SKSS A 1 A_SpawnProjectile("SkullStaffAltShot4",0,0,0)
      Stop
   }
}

ACTOR SkullStaffAltShot4 : SkullStaffAltShot1
{
   States
   {
   Spawn:
      SKSS CCDDEE 1 Bright A_SeekerMissile(5,8)
      SKSS F 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS FFGGHH 1 Bright A_SeekerMissile(5,8)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack4",1,0,0)
      SKSS C 1 Bright A_SetTranslucent(0.8)
      SKSS C 1 Bright A_SetTranslucent(0.6)
      SKSS D 1 Bright A_SetTranslucent(0.4)
      SKSS D 1 Bright A_SetTranslucent(0.2)
      SKSS D 1 Bright A_SetTranslucent(0.1)
      Stop
   }
}

ACTOR SkullStaffAltAttack4 : SkullStaffAltAttack2
{  
   States
   {
   Spawn:
      SKSS A 0 A_Look
   See:
      SKSS A 0 A_Chase
   Missile:
      SKSS A 0 A_FaceTarget
      SKSS A 1 A_SpawnProjectile("SkullStaffAltShot5",0,0,0)
      Stop
   }
}

ACTOR SkullStaffAltShot5 : SkullStaffAltShot1
{
   States
   {
   Spawn:
      SKSS CCDDEE 1 Bright A_SeekerMissile(5,8)
      SKSS F 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS FFGGHH 1 Bright A_SeekerMissile(5,8)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack5",1,0,0)
      SKSS C 1 Bright A_SetTranslucent(0.8)
      SKSS C 1 Bright A_SetTranslucent(0.6)
      SKSS D 1 Bright A_SetTranslucent(0.4)
      SKSS D 1 Bright A_SetTranslucent(0.2)
      SKSS D 1 Bright A_SetTranslucent(0.1)
      Stop
   }
}

ACTOR SkullStaffAltAttack5 : SkullStaffAltAttack2
{  
   States
   {
   Spawn:
      SKSS A 0 A_Look
   See:
      SKSS A 0 A_Chase
   Missile:
      SKSS A 0 A_FaceTarget
      SKSS A 1 A_SpawnProjectile("SkullStaffAltShot6",0,0,0)
      Stop
   }
}

ACTOR SkullStaffAltShot6 : SkullStaffAltShot1
{
   States
   {
   Spawn:
      SKSS CCDDEE 1 Bright A_SeekerMissile(5,8)
      SKSS F 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS FFGGHH 1 Bright A_SeekerMissile(5,8)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack6",1,0,0)
      SKSS C 1 Bright A_SetTranslucent(0.8)
      SKSS C 1 Bright A_SetTranslucent(0.6)
      SKSS D 1 Bright A_SetTranslucent(0.4)
      SKSS D 1 Bright A_SetTranslucent(0.2)
      SKSS D 1 Bright A_SetTranslucent(0.1)
      Stop
   }
}

ACTOR SkullStaffAltAttack6 : SkullStaffAltAttack2
{  
   States
   {
   Spawn:
      SKSS A 0 A_Look
   See:
      SKSS A 0 A_Chase
   Missile:
      SKSS A 0 A_FaceTarget
      SKSS A 1 A_SpawnProjectile("SkullStaffAltShot7",0,0,0)
      Stop
   }
}

ACTOR SkullStaffAltShot7 : SkullStaffAltShot1
{
   States
   {
   Spawn:
      SKSS CCDDEE 1 Bright A_SeekerMissile(5,8)
      SKSS F 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS FFGGHH 1 Bright A_SeekerMissile(5,8)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack7",1,0,0)
      SKSS C 1 Bright A_SetTranslucent(0.8)
      SKSS C 1 Bright A_SetTranslucent(0.6)
      SKSS D 1 Bright A_SetTranslucent(0.4)
      SKSS D 1 Bright A_SetTranslucent(0.2)
      SKSS D 1 Bright A_SetTranslucent(0.1)
      Stop
   }
}

ACTOR SkullStaffAltAttack7 : SkullStaffAltAttack2
{  
   States
   {
   Spawn:
      SKSS A 0 A_Look
   See:
      SKSS A 0 A_Chase
   Missile:
      SKSS A 0 A_FaceTarget
      SKSS A 1 A_SpawnProjectile("SkullStaffAltShot8",0,0,0)
      Stop
   }
}

ACTOR SkullStaffAltShot8 : SkullStaffAltShot1
{
   States
   {
   Spawn:
      SKSS CCDDEE 1 Bright A_SeekerMissile(5,8)
      SKSS F 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS FFGGHH 1 Bright A_SeekerMissile(5,8)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack8",1,0,0)
      SKSS C 1 Bright A_SetTranslucent(0.8)
      SKSS C 1 Bright A_SetTranslucent(0.6)
      SKSS D 1 Bright A_SetTranslucent(0.4)
      SKSS D 1 Bright A_SetTranslucent(0.2)
      SKSS D 1 Bright A_SetTranslucent(0.1)
      Stop
   }
}

ACTOR SkullStaffAltAttack8 : SkullStaffAltAttack2
{  
   States
   {
   Spawn:
      SKSS A 0 A_Look
   See:
      SKSS A 0 A_Chase
   Missile:
      SKSS A 0 A_FaceTarget
      SKSS A 1 A_SpawnProjectile("SkullStaffAltShot9",0,0,0)
      Stop
   }
}

ACTOR SkullStaffAltShot9 : SkullStaffAltShot1
{
   States
   {
   Spawn:
      SKSS CCDDEE 1 Bright A_SeekerMissile(5,8)
      SKSS F 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS FFGGHH 1 Bright A_SeekerMissile(5,8)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack9",1,0,0)
      SKSS C 1 Bright A_SetTranslucent(0.8)
      SKSS C 1 Bright A_SetTranslucent(0.6)
      SKSS D 1 Bright A_SetTranslucent(0.4)
      SKSS D 1 Bright A_SetTranslucent(0.2)
      SKSS D 1 Bright A_SetTranslucent(0.1)
      Stop
   }
}

ACTOR SkullStaffAltAttack9 : SkullStaffAltAttack2
{  
   States
   {
   Spawn:
      SKSS A 0 A_Look
   See:
      SKSS A 0 A_Chase
   Missile:
      SKSS A 0 A_FaceTarget
      SKSS A 1 A_SpawnProjectile("SkullStaffAltShot10",0,0,0)
      Stop
   }
}

ACTOR SkullStaffAltShot10 : SkullStaffAltShot1
{
   States
   {
   Spawn:
      SKSS CCDDEE 1 Bright A_SeekerMissile(5,8)
      SKSS F 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS FFGGHH 1 Bright A_SeekerMissile(5,8)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack10",1,0,0)
      SKSS C 1 Bright A_SetTranslucent(0.8)
      SKSS C 1 Bright A_SetTranslucent(0.6)
      SKSS D 1 Bright A_SetTranslucent(0.4)
      SKSS D 1 Bright A_SetTranslucent(0.2)
      SKSS D 1 Bright A_SetTranslucent(0.1)
      Stop
   }
}

ACTOR SkullStaffAltAttack10 : SkullStaffAltAttack2
{  
   States
   {
   Spawn:
      SKSS A 0 A_Look
   See:
      SKSS A 0 A_Chase
   Missile:
      SKSS A 0 A_FaceTarget
      SKSS A 1 A_SpawnProjectile("SkullStaffAltShot11",0,0,0)
      Stop
   }
}

ACTOR SkullStaffAltShot11 : SkullStaffAltShot1
{
   States
   {
   Spawn:
      SKSS CCDDEE 1 Bright A_SeekerMissile(5,8)
      SKSS F 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS FFGGHH 1 Bright A_SeekerMissile(5,8)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack11",1,0,0)
      SKSS C 1 Bright A_SetTranslucent(0.8)
      SKSS C 1 Bright A_SetTranslucent(0.6)
      SKSS D 1 Bright A_SetTranslucent(0.4)
      SKSS D 1 Bright A_SetTranslucent(0.2)
      SKSS D 1 Bright A_SetTranslucent(0.1)
      Stop
   }
}

ACTOR SkullStaffAltAttack11 : SkullStaffAltAttack2
{  
   States
   {
   Spawn:
      SKSS A 0 A_Look
   See:
      SKSS A 0 A_Chase
   Missile:
      SKSS A 0 A_FaceTarget
      SKSS A 1 A_SpawnProjectile("SkullStaffAltShot12",0,0,0)
      Stop
   }
}

ACTOR SkullStaffAltShot12 : SkullStaffAltShot1
{
   States
   {
   Spawn:
      SKSS CCDDEE 1 Bright A_SeekerMissile(5,8)
      SKSS F 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS FFGGHH 1 Bright A_SeekerMissile(5,8)
      SKSS C 0 A_SpawnItem("SkullStaffAltAttack1",1,0,0)
      SKSS C 1 Bright A_SetTranslucent(0.8)
      SKSS C 1 Bright A_SetTranslucent(0.6)
      SKSS D 1 Bright A_SetTranslucent(0.4)
      SKSS D 1 Bright A_SetTranslucent(0.2)
      SKSS D 1 Bright A_SetTranslucent(0.1)
      Stop
   }
}

1 7 2
Void Weaver
= Captain =
Next rank: - Major - after 240 points
2400

Doom Rate: 1.82

Posts quality: +757
Ссылка на пост №842 Отправлено: 05.11.19 00:07:37
Нахер все _СпаунИтем, меняй на _СпаунИтемЭкс с флагом НОЧЕКПОЗИШН, - стопудово ролляет на успех спауна монстр-акторов.
1 9 1
Shadowman
- UAC Commissar -
Next rank: = UAC Commissar = after 273 points
6027

Doom Rate: 2.26

Posts quality: +431
Ссылка на пост №843 Отправлено: 05.11.19 12:40:41
Void Weaver
Заменил, но результат тот же. Причем пока основной шар не долетел до цели, видно, что из него идет пара выстрелов меньшими шарами, т.е. что-то все ж спавнится и стреляет, но как только главный шар ударяется о цель, то все, никаких больше спавнов нет.
Какое-то изменение механики движка произошло, а вот какое - нужно разбираться.
Для сравнения можно запустить Инквизитор3д на старых гздумах (хотя бы 4-1-3) и на новом, и пострелять альт-атакой посоха - разница визуально (и по дамагу) будет заметна. В старых версиях шар (или спавны от него) некоторое время крутился вокруг цели, обстреливая ее очередями мелких шаров.
1 7 2
Void Weaver
= Captain =
Next rank: - Major - after 240 points
2400

Doom Rate: 1.82

Posts quality: +757
Ссылка на пост №844 Отправлено: 05.11.19 12:51:33
SKSS A 0 A_Look - вообще не работает. Нужен либо буффер-кадр, либо НоДелэй.
1 9 1
Guest
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 47 points
1393

Doom Rate: 2.55

Posts quality: +131
Ссылка на пост №845 Отправлено: 05.11.19 13:20:13
Shadowman пишет:
В новых гоззах перестал корректно работать код посоха из инквизитора3д

Такая проблема не только у нас:
https://forum.zdoom.org/viewtopic.php?f=2&t=65769

Там же и предлагается решение в виде добавления флага +BOUNCEONACTORS. Проверял, работает. Но то, что это непорядок - несомненно.
3 1
Void Weaver
= Captain =
Next rank: - Major - after 240 points
2400

Doom Rate: 1.82

Posts quality: +757
Ссылка на пост №846 Отправлено: 05.11.19 13:39:02

Bouncing will override ripping, if bouncing on actors is enabled. The recent change only added handling for one overlooked case when hitting an actor from above or below.
The solution would be to set the projectile to not bounce off actors.
1 9 1
Shadowman
- UAC Commissar -
Next rank: = UAC Commissar = after 273 points
6027

Doom Rate: 2.26

Posts quality: +431
Ссылка на пост №847 Отправлено: 05.11.19 14:18:09
Не знаю, причем тут Ripper-флаг, т.к. проблема решилась добавлением +BOUNCEONACTORS актору SkullStaffAltShot1. Если же убрать флаг RIPPER, то урон ослабляется, снаряд крутится дольше, но повреждает в итоге меньше. Т.к. наличие Ripper усиливает урон, значит эти флаги вполне сочетаются у данного актора.
Заодно убрал лишние флаги и заменил спаунитемы на спаунитемЭксы с НОЧЕКПОЗИШН. В кодах снарядов вместо нулей проставил единички. Не знаю, повлияли ли эти действия каким-то образом, без +BOUNCEONACTORS эффекта не было.
1 7 2
Страница 43 из 43Перейти наверх Пред.  1, 2, 3 ... 41, 42, 43
   Список разделов - Doom и его порты - GZDoom / QZDoom