Phoenix Rod FX2

edited 2010 Oct 14 in Addons for Heretic
This is the Tome of power version of the Phoenix Rod shot aka the flame thrower.
hereticext032.th.png
hereticext029.th.png
note i can't do anything about the white light any help on that part would be greatfull.
State {
  ID = "PHOENIXFX2_1";
  Sprite = "FX09";
  Frame = 32768;
  Tics = 2;
  Next state = "PHOENIXFX2_2";
}

State {
  ID = "PHOENIXFX2_2";
  Sprite = "FX09";
  Frame = 32769;
  Tics = 2;
  Next state = "PHOENIXFX2_3";
}

State {
  ID = "PHOENIXFX2_3";
  Sprite = "FX09";
  Frame = 32768;
  Tics = 2;
  Next state = "PHOENIXFX2_4";
}

State {
  ID = "PHOENIXFX2_4";
  Sprite = "FX09";
  Frame = 32769;
  Tics = 2;
  Next state = "PHOENIXFX2_5";
}

State {
  ID = "PHOENIXFX2_5";
  Sprite = "FX09";
  Frame = 32768;
  Tics = 2;
  Next state = "PHOENIXFX2_6";
}

State {
  ID = "PHOENIXFX2_6";
  Sprite = "FX09";
  Frame = 32769;
  Tics = 2;
  Action = "A_FlameEnd";
  Next state = "PHOENIXFX2_7";
}

State {
  ID = "PHOENIXFX2_7";
  Sprite = "FX09";
  Frame = 32770;
  Tics = 2;
  Next state = "PHOENIXFX2_8";
}

State {
  ID = "PHOENIXFX2_8";
  Sprite = "FX09";
  Frame = 32771;
  Tics = 2;
  Next state = "PHOENIXFX2_9";
}

State {
  ID = "PHOENIXFX2_9";
  Sprite = "FX09";
  Frame = 32772;
  Tics = 2;
  Next state = "PHOENIXFX2_10";
}

State {
  ID = "PHOENIXFX2_10";
  Sprite = "FX09";
  Frame = 32773;
  Tics = 2;
  Next state = "NULL";
}

State {
  ID = "PHOENIXFXI2_1";
  Sprite = "FX09";
  Frame = 32774;
  Tics = 3;
  Next state = "PHOENIXFXI2_2";
}

State {
  ID = "PHOENIXFXI2_2";
  Sprite = "FX09";
  Frame = 32775;
  Tics = 3;
  Action = "A_FloatPuff";
  Next state = "PHOENIXFXI2_3";
}

State {
  ID = "PHOENIXFXI2_3";
  Sprite = "FX09";
  Frame = 32776;
  Tics = 4;
  Next state = "PHOENIXFXI2_4";
}

State {
  ID = "PHOENIXFXI2_4";
  Sprite = "FX09";
  Frame = 32777;
  Tics = 5;
  Next state = "PHOENIXFXI2_5";
}

State {
  ID = "PHOENIXFXI2_5";
  Sprite = "FX09";
  Frame = 32778;
  Tics = 5;
  Next state = "NULL";
}

Model {
  State = "PHOENIXFX2_1"
  Scale = 0
  Offset = 0
  Flags = alignpitch | alignyaw
  Md2{
      File = ""
   }
}

Copy Model {
  State = "PHOENIXFX2_1"
  Inter = 0
  Md2{
   Frame = "2"
      Skin = 2
   }
}

Copy Model {
  State = "PHOENIXFX2_2"
  Inter = 0.33
  Md2{
   Frame = "3"
      Skin = 3
   }
}

Copy Model {
  State = "PHOENIXFX2_3"
  Inter = 0.66
  Md2{
   Frame = "4"
      Skin = 4
   }
}

Copy Model {
  State = "PHOENIXFX2_4"
  Inter = 0
  Md2{
   Frame = "5"
      Skin = 5
   }
}

Copy Model {
  State = "PHOENIXFX2_5"
  Inter = 0.33
  Md2{
   Frame = "6"
      Skin = 6
   }
}

Copy Model {
  State = "PHOENIXFX2_6"
  Inter = 0
  Md2{
   Frame = "2"
      Skin = 2
   }
}

Copy Model {
  State = "PHOENIXFX2_7"
  Inter = 0.33
  Md2{
   Frame = "3"
      Skin = 3
   }
}

Copy Model {
  State = "PHOENIXFX2_8"
  Inter = 0.66
  Md2{
   Frame = "4"
      Skin = 4
   }
}

Copy Model {
  State = "PHOENIXFX2_9"
  Inter = 0
  Md2{
   Frame = "5"
      Skin = 5
   }
}

Copy Model {
  State = "PHOENIXFX2_10"
  Inter = 0.33
  Md2{
   Frame = "6"
      Skin = 6
   }
}

Model {
  State = "PHOENIXFXI2_1"
  Scale = 0
  Offset = 0
  Flags = alignpitch | alignyaw
  Md2{
      File = ""
   }
}

Copy Model {
  State = "PHOENIXFXI2_1"
  Inter = 0
  Md2{
   Frame = "2"
      Skin = 2
   }
}


Copy Model {
  State = "PHOENIXFXI2_2"
  Inter = 0.33
  Md2{
   Frame = "3"
      Skin = 3
   }
}

Copy Model {
  State = "PHOENIXFXI2_3"
  Inter = 0.66
  Md2{
   Frame = "4"
      Skin = 4
   }
}

Copy Model {
  State = "PHOENIXFXI2_4"
  Inter = 0
  Md2{
   Frame = "5"
      Skin = 5
   }
}

Copy Model {
  State = "PHOENIXFXI2_5"
  Inter = 0.33
  Md2{
   Frame = "6"
      Skin = 6
   }
}

Generator {
  State = "PHOENIXFX2_1"
  Flags = srcvel | srcdir | blend
  Center { -4 0 0 }
  Speed = -1
  Speed rnd = 0.2
  Spawn radius = 5.8
  Spawn age = 1
  Max age = -1
  Particles = 3000
  Spawn rate = 20
  Vector rnd = 3
  Stage {
   Type = "pt_point";
   Flags = "ptf_bright";
   Tics = 5;
   Radius = 4;
   Resistance = .1;
   Color { 1 .2 0 .2 };
   };
}

Generator {
  State = "PHOENIXFX2_2"
  Flags = srcvel | srcdir | blend
  Center { -4 0 0 }
  Speed = -1
  Speed rnd = 0.2
  Spawn radius = 5.8
  Spawn age = 1
  Max age = -1
  Particles = 3000
  Spawn rate = 20
  Vector rnd = 3
  Stage {
   Type = "pt_point";
   Flags = "ptf_bright";
   Tics = 5;
   Radius = 4;
   Resistance = .1;
   Color { 1 .2 0 .2 };
   };
}

Generator {
  State = "PHOENIXFX2_3"
  Flags = srcvel | srcdir | blend
  Center { -4 0 0 }
  Speed = -1
  Speed rnd = 0.2
  Spawn radius = 5.8
  Spawn age = 1
  Max age = -1
  Particles = 3000
  Spawn rate = 20
  Vector rnd = 3
  Stage {
   Type = "pt_point";
   Flags = "ptf_bright";
   Tics = 5;
   Radius = 4;
   Resistance = .1;
   Color { 1 .2 0 .2 };
   };
}

Generator {
  State = "PHOENIXFX2_4"
  Flags = srcvel | srcdir | blend
  Center { -4 0 0 }
  Speed = -1
  Speed rnd = 0.2
  Spawn radius = 5.8
  Spawn age = 1
  Max age = -1
  Particles = 3000
  Spawn rate = 20
  Vector rnd = 3
  Stage {
   Type = "pt_point";
   Flags = "ptf_bright";
   Tics = 5;
   Radius = 4;
   Resistance = .1;
   Color { 1 .2 0 .2 };
   };
}

Generator {
  State = "PHOENIXFX2_5"
  Flags = srcvel | srcdir | blend
  Center { -4 0 0 }
  Speed = -1
  Speed rnd = 0.2
  Spawn radius = 5.8
  Spawn age = 1
  Max age = -1
  Particles = 3000
  Spawn rate = 20
  Vector rnd = 3
  Stage {
   Type = "pt_point";
   Flags = "ptf_bright";
   Tics = 5;
   Radius = 4;
   Resistance = .1;
   Color { 1 .2 0 .2 };
   };
}

Generator {
  State = "PHOENIXFX2_6"
  Flags = srcvel | srcdir | blend
  Center { -4 0 0 }
  Speed = -1
  Speed rnd = 0.2
  Spawn radius = 5.8
  Spawn age = 1
  Max age = -1
  Particles = 3000
  Spawn rate = 20
  Vector rnd = 3
  Stage {
   Type = "pt_point";
   Flags = "ptf_bright";
   Tics = 5;
   Radius = 4;
   Resistance = .1;
   Color { 1 .2 0 .2 };
   };
}

Generator {
  State = "PHOENIXFX2_7"
  Flags = srcvel | srcdir | blend
  Center { -4 0 0 }
  Speed = -1
  Speed rnd = 0.2
  Spawn radius = 5.8
  Spawn age = 1
  Max age = -1
  Particles = 3000
  Spawn rate = 20
  Vector rnd = 3
  Stage {
   Type = "pt_point";
   Flags = "ptf_bright";
   Tics = 5;
   Radius = 4;
   Resistance = .1;
   Color { 1 .2 0 .2 };
   };
}

Generator {
  State = "PHOENIXFX2_8"
  Flags = srcvel | srcdir | blend
  Center { -4 0 0 }
  Speed = -1
  Speed rnd = 0.2
  Spawn radius = 5.8
  Spawn age = 1
  Max age = -1
  Particles = 3000
  Spawn rate = 20
  Vector rnd = 3
  Stage {
   Type = "pt_point";
   Flags = "ptf_bright";
   Tics = 5;
   Radius = 4;
   Resistance = .1;
   Color { 1 .2 0 .2 };
   };
}

Generator {
  State = "PHOENIXFX2_9"
  Flags = srcvel | srcdir | blend
  Center { -4 0 0 }
  Speed = -1
  Speed rnd = 0.2
  Spawn radius = 5.8
  Spawn age = 1
  Max age = -1
  Particles = 3000
  Spawn rate = 20
  Vector rnd = 3
  Stage {
   Type = "pt_point";
   Flags = "ptf_bright";
   Tics = 5;
   Radius = 4;
   Resistance = .1;
   Color { 1 .2 0 .2 };
   };
}

Generator {
  State = "PHOENIXFX2_10"
  Flags = srcvel | srcdir | blend
  Center { -4 0 0 }
  Speed = -1
  Speed rnd = 0.2
  Spawn radius = 5.8
  Spawn age = 1
  Max age = -1
  Particles = 3000
  Spawn rate = 20
  Vector rnd = 3
  Stage {
   Type = "pt_point";
   Flags = "ptf_bright";
   Tics = 5;
   Radius = 4;
   Resistance = .1;
   Color { 1 .2 0 .2 };
   };
}

#END
Generator {
  State = "PHOENIXFXI2_1"
  Flags = blend
  Center { -4 0 0 }
  Speed = -1
  Speed rnd = 0.2
  Spawn radius = 5
  Spawn age = 1
  Max age = -1
  Particles = 3000
  Spawn rate = 20
  Vector rnd = 3
  Stage {
   Type = "pt_point";
   Flags = "ptf_bright";
   Tics = 5;
   Radius = 5;
   Resistance = .1;
   Color { 1 .2 0 .2 };
   };
}

Generator {
  State = "PHOENIXFXI2_2"
  Flags = blend
  Center { -4 0 0 }
  Speed = -1
  Speed rnd = 0.2
  Spawn radius = 5
  Spawn age = 1
  Max age = -1
  Particles = 3000
  Spawn rate = 20
  Vector rnd = 3
  Stage {
   Type = "pt_point";
   Flags = "ptf_bright";
   Tics = 5;
   Radius = 4;
   Resistance = .1;
   Color { 1 .2 0 .2 };
   };
}

Generator {
  State = "PHOENIXFXI2_3"
  Flags = blend
  Center { -4 0 0 }
  Speed = -1
  Speed rnd = 0.2
  Spawn radius = 5
  Spawn age = 1
  Max age = -1
  Particles = 3000
  Spawn rate = 20
  Vector rnd = 3
  Stage {
   Type = "pt_point";
   Flags = "ptf_bright";
   Tics = 5;
   Radius = 3;
   Resistance = .1;
   Color { 1 .2 0 .2 };
   };
}

Generator {
  State = "PHOENIXFXI2_4"
  Flags = blend
  Center { -4 0 0 }
  Speed = -1
  Speed rnd = 0.2
  Spawn radius = 5
  Spawn age = 1
  Max age = -1
  Particles = 3000
  Spawn rate = 20
  Vector rnd = 3
  Stage {
   Type = "pt_point";
   Flags = "ptf_bright";
   Tics = 5;
   Radius = 2;
   Resistance = .1;
   Color { 1 .2 0 .2 };
   };
}

Generator {
  State = "PHOENIXFXI2_5"
  Flags = blend
  Center { -4 0 0 }
  Speed = -1
  Speed rnd = 0.2
  Spawn radius = 5
  Spawn age = 1
  Max age = -1
  Particles = 3000
  Spawn rate = 20
  Vector rnd = 3
  Stage {
   Type = "pt_point";
   Flags = "ptf_bright";
   Tics = 5;
   Radius = 1;
   Resistance = .1;
   Color { 1 .2 0 .2 };
   };
}

Comments

  • Gordon wrote:
    note i can't do anything about the white light any help on that part would be greatfull.
    It looks like smoke with additive blending, adding up to a white color in the cluster.
  • if i could remove the white that shows then i would but i do not know how to.
  • Try this for the code instead:
    ### State frames taken away, because they're simply a reiteration of what's already defined in objects.ded
    
    ### You only need to define that there is a blank model, since you're essentially wiping it clean - the options can stay at default for all the visual representation cares!
    
    Model {
      State = "PHOENIXFX2_1"
      Md2{ File = "" }
    }
    Copy Model {  State = "PHOENIXFX2_2" }
    Copy Model {  State = "PHOENIXFX2_3" }
    Copy Model {  State = "PHOENIXFX2_4" }
    Copy Model {  State = "PHOENIXFX2_5" }
    Copy Model {  State = "PHOENIXFX2_6" }
    Copy Model {  State = "PHOENIXFX2_7" }
    Copy Model {  State = "PHOENIXFX2_8" }
    Copy Model {  State = "PHOENIXFX2_9" }
    Copy Model {  State = "PHOENIXFX2_10" }
    
    Copy Model {  State = "PHOENIXFXI2_1" }
    Copy Model {  State = "PHOENIXFXI2_2" }
    Copy Model {  State = "PHOENIXFXI2_3" }
    Copy Model {  State = "PHOENIXFXI2_4" }
    Copy Model {  State = "PHOENIXFXI2_5" }
    
    ### OK, now that's 15 GENERATORS DOING EXACTLY THE SAME THING FOR 15 FRAMES!!!
    ### Since they're all attached to the same Thing, let's just make one Generator that is a Mobj (map object) type!
    ### either listmobjtypes in the console or open the jHeretic "objects.ded" to see what the Things are
    ###  DO NOT MODIFY/ADD TO/TAKE AWAY FROM OBJECTS.DED!!!  You could mess with something that could prove fatal to the gameplay, like an offset or something! :)
    
    Generator {
      Mobj = "PHOENIXFX2"
      Flags = srcvel | srcdir | blend | static
      Center { -4 0 0 }
      Speed = -1
      Speed rnd = 0.2
      Spawn radius = 5.8
      Spawn age = -1
      Max age = -1
      Particles = 3000
      Spawn rate = 10
      Vector rnd = 3
      Stage {
       Type = "pt_point";
       Flags = "ptf_bright";
       Tics = 5;
       Radius = 4;
       Resistance = .1;
       Color { 1 .2 0 .2 };
       };
    }
    

    Unless it's defined elsewhere in the pack, you're using, then the white is just all the particles additively blending together until they come to pure white!
  • still has part of the white in there but not as much. maybe like 1 or 2 frames. it's in the center of the i hit something fire. hereticext033.th.png
  • Gordon wrote:
    still has part of the white in there but not as much. maybe like 1 or 2 frames. it's in the center of the i hit something fire. hereticext033.th.png
    either it's in another def somewhere, it's the dynamic light mixing with it, or it's too many particles - you could lower the spawn rate to 1 or 2 or something and see if that helps
  • it happens when there is no particles just standerd affect but i think it's engen side
    as i have not seen it in the objects ded
  • Gordon wrote:
    it happens when there is no particles just standerd affect but i think it's engen side
    as i have not seen it in the objects ded
    Yeah, I just went in and checked with absolutely no addons, and it's a white dynamic light on the last frame or two of the fire hit frames. It actually even turns the sprite a dull white!
    That's kind of dumb, 'cause I can't actually find the definitions for them, so they're probably in the actual engine like you said... I checked to see if it's in the bug reports, and it's not, so I'm gonna add it there!

    EDIT: A fix to this is to either turn the default dynamic light off by eliminating the brightness, or adding a new light, thus replacing the old one. Try putting either of these at the beginning of your DED file:
    Light {
      State = "PHOENIXFXI2_4"
      Color { 1 .5 0 .5 }
      Size = .25
    }
    Light {
      State = "PHOENIXFXI2_5"
      Color { .75 .25 0 .25 }
      Size = .125
    }
    
    State {
      ID = "PHOENIXFXI2_4"
      Sprite = "FX09"
      Frame = 9
      Tics = 5
      Next state = "PHOENIXFXI2_5"
    }
    
    State {
      ID = "PHOENIXFXI2_5"
      Sprite = "FX09"
      Frame = 10
      Tics = 5
      Next state = "NULL"
    }
    

    The first one seems to look better, as there's still a dynamic light for the whole series of frames. :)
    Just tested it and it fixes it!
  • There are no internal definitions for dynamic lights in DDay (there are a couple of lights defined in the external light defs included with Dday though).

    Dday has an algorithm that automatically places a dynamic light on any mobj state that is full bright and doesn't have an external light definition. It "looks" at the sprite used in the state and automatically picks where the centre of the dynamic light should be, what colour is should be, its size etc.

    Naturally, the algorithm doesn't always get it right; for instance in 1.8.6 it picked a pixel off the stem of the Doom's tall red fire torch mobj, over a pixel of the flame, in some of the mobj's states. The algorithm was improved at some point in 1.9 betas so it no longer makes this mistake in the latest 1.9 betas.
  • Vermil wrote:
    There are no internal definitions for dynamic lights in DDay (there are a couple of lights defined in the external light defs included with Dday though).

    Dday has an algorithm that automatically places a dynamic light on any mobj state that is full bright and doesn't have an external light definition. It "looks" at the sprite used in the state and automatically picks where the centre of the dynamic light should be, what colour is should be, its size etc.

    Naturally, the algorithm doesn't always get it right; for instance in 1.8.6 it picked a pixel off the stem of the Doom's tall red fire torch mobj, over a pixel of the flame, in some of the mobj's states. The algorithm was improved at some point in 1.9 betas so it no longer makes this mistake in the latest 1.9 betas.

    I was starting to suspect it, but I didn't think the last two sprites had turned grey until when I checked the sprites out for myself. I guess it's supposed to be smoke and all... Applied to the right generator, it might actually look good! :)
  • thanks for all the help and now for an updated Phoenix Rod FX2
    State {
          ID = "PHOENIXFX2_1";
          Sprite = "FX09";
          Frame = 32768;
          Tics = 2;
          Next state = "PHOENIXFX2_2";
        }
    
        State {
          ID = "PHOENIXFX2_2";
          Sprite = "FX09";
          Frame = 32769;
          Tics = 2;
          Next state = "PHOENIXFX2_3";
        }
    
        State {
          ID = "PHOENIXFX2_3";
          Sprite = "FX09";
          Frame = 32768;
          Tics = 2;
          Next state = "PHOENIXFX2_4";
        }
    
        State {
          ID = "PHOENIXFX2_4";
          Sprite = "FX09";
          Frame = 32769;
          Tics = 2;
          Next state = "PHOENIXFX2_5";
        }
    
        State {
          ID = "PHOENIXFX2_5";
          Sprite = "FX09";
          Frame = 32768;
          Tics = 2;
          Next state = "PHOENIXFX2_6";
        }
    
        State {
          ID = "PHOENIXFX2_6";
          Sprite = "FX09";
          Frame = 32769;
          Tics = 2;
          Action = "A_FlameEnd";
          Next state = "PHOENIXFX2_7";
        }
    
        State {
          ID = "PHOENIXFX2_7";
          Sprite = "FX09";
          Frame = 32770;
          Tics = 2;
          Next state = "PHOENIXFX2_8";
        }
    
        State {
          ID = "PHOENIXFX2_8";
          Sprite = "FX09";
          Frame = 32771;
          Tics = 2;
          Next state = "PHOENIXFX2_9";
        }
    
        State {
          ID = "PHOENIXFX2_9";
          Sprite = "FX09";
          Frame = 32772;
          Tics = 2;
          Next state = "PHOENIXFX2_10";
        }
    
        State {
          ID = "PHOENIXFX2_10";
          Sprite = "FX09";
          Frame = 32773;
          Tics = 2;
          Next state = "NULL";
        }
    
        State {
          ID = "PHOENIXFXI2_1";
          Sprite = "FX09";
          Frame = 32774;
          Tics = 3;
          Next state = "PHOENIXFXI2_2";
        }
    
        State {
          ID = "PHOENIXFXI2_2";
          Sprite = "FX09";
          Frame = 32775;
          Tics = 3;
          Action = "A_FloatPuff";
          Next state = "PHOENIXFXI2_3";
        }
    
        State {
          ID = "PHOENIXFXI2_3";
          Sprite = "FX09";
          Frame = 32776;
          Tics = 4;
          Next state = "PHOENIXFXI2_4";
        }
    
        State {
          ID = "PHOENIXFXI2_4";
          Sprite = "FX09";
          Frame = 32777;
          Tics = 5;
          Next state = "PHOENIXFXI2_5";
        }
    
        State {
          ID = "PHOENIXFXI2_5";
          Sprite = "FX09";
          Frame = 32778;
          Tics = 5;
          Next state = "NULL";
        }
    
        Model {
          State = "PHOENIXFX2_1"
          Scale = 0
          Offset = 0
          Flags = alignpitch | alignyaw
          Md2{
              File = ""
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_1"
          Inter = 0
          Md2{
           Frame = "2"
              Skin = 2
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_2"
          Inter = 0.33
          Md2{
           Frame = "3"
              Skin = 3
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_3"
          Inter = 0.66
          Md2{
           Frame = "4"
              Skin = 4
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_4"
          Inter = 0
          Md2{
           Frame = "5"
              Skin = 5
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_5"
          Inter = 0.33
          Md2{
           Frame = "6"
              Skin = 6
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_6"
          Inter = 0
          Md2{
           Frame = "2"
              Skin = 2
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_7"
          Inter = 0.33
          Md2{
           Frame = "3"
              Skin = 3
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_8"
          Inter = 0.66
          Md2{
           Frame = "4"
              Skin = 4
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_9"
          Inter = 0
          Md2{
           Frame = "5"
              Skin = 5
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_10"
          Inter = 0.33
          Md2{
           Frame = "6"
              Skin = 6
           }
        }
    
        Model {
          State = "PHOENIXFXI2_1"
          Scale = 0
          Offset = 0
          Flags = alignpitch | alignyaw
          Md2{
              File = ""
           }
        }
    
        Copy Model {
          State = "PHOENIXFXI2_1"
          Inter = 0
          Md2{
           Frame = "2"
              Skin = 2
           }
        }
    
    
        Copy Model {
          State = "PHOENIXFXI2_2"
          Inter = 0.33
          Md2{
           Frame = "3"
              Skin = 3
           }
        }
    
        Copy Model {
          State = "PHOENIXFXI2_3"
          Inter = 0.66
          Md2{
           Frame = "4"
              Skin = 4
           }
        }
    
        Copy Model {
          State = "PHOENIXFXI2_4"
          Inter = 0
          Md2{
           Frame = "5"
              Skin = 5
           }
        }
    
        Copy Model {
          State = "PHOENIXFXI2_5"
          Inter = 0.33
          Md2{
           Frame = "6"
              Skin = 6
           }
        }
    
    Light {
      State = "PHOENIXFXI2_4"
      Color { 0.1 0.1 0.1 0.1 }
      Size = .25
    }
    Light {
      State = "PHOENIXFXI2_5"
      Color { 0.1 0.1 0.1 0.1 }
      Size = .125
    }
    
        Generator {
          State = "PHOENIXFX2_1"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFX2_2"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFX2_3"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFX2_4"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFX2_5"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFX2_6"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFX2_7"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFX2_8"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFX2_9"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFX2_10"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        #END
        Generator {
          State = "PHOENIXFXI2_1"
          Flags = srcvel
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "Particle10";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 5;
           Resistance = .1;
           Color { .2 .2 .2 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFXI2_2"
          Flags = srcvel
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "PT_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { .2 .2 .2 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFXI2_3"
          Flags = srcvel
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "PT_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 3;
           Resistance = .1;
           Color { .2 .2 .2 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFXI2_4"
          Flags = srcvel
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "PT_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 2;
           Resistance = .1;
           Color { .2 .2 .2 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFXI2_5"
          Flags = srcvel
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "PT_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 1;
           Resistance = .1;
           Color { .2 .2 .2 .2 };
           };
        }
    
    this had no or virtually no dynamic lights on the end bit and it's now smoke
  • You're not gonna want max age as -1 on those state-based generators, as it'll reserve all the slots for generators that won't die, or at best will erase other active ones when brought up that don't have the static flag set. Anyway, why don't you have the particle stages themselves determine the color change, rather than making a generator for each state with variant colors?
  • i do not have the particles static aka the flag that will kill the particles once too many are on and how would i go about letting the state chose the colors?
  • I mean to say have progressive states for the flame particles turning to smoke
  • ah but in the sprites only has smoke when you hit the wall but i think i see where your going with this.
  • Gordon wrote:
    ah but in the sprites only has smoke when you hit the wall but i think i see where your going with this.
    Yeah, for instance... If you are sticking with state-based, you'd only need one at the first frame of the phoenix fire puff, and then have it with negative gravity so it floats upward, then stage it towards grey - it'll basically do the work of the sprite frames
  • I do not know if this is what it should look like but this is all i could do.
    State {
          ID = "PHOENIXFX2_1";
          Sprite = "FX09";
          Frame = 32768;
          Tics = 2;
          Next state = "PHOENIXFX2_2";
        }
    
        State {
          ID = "PHOENIXFX2_2";
          Sprite = "FX09";
          Frame = 32769;
          Tics = 2;
          Next state = "PHOENIXFX2_3";
        }
    
        State {
          ID = "PHOENIXFX2_3";
          Sprite = "FX09";
          Frame = 32768;
          Tics = 2;
          Next state = "PHOENIXFX2_4";
        }
    
        State {
          ID = "PHOENIXFX2_4";
          Sprite = "FX09";
          Frame = 32769;
          Tics = 2;
          Next state = "PHOENIXFX2_5";
        }
    
        State {
          ID = "PHOENIXFX2_5";
          Sprite = "FX09";
          Frame = 32768;
          Tics = 2;
          Next state = "PHOENIXFX2_6";
        }
    
        State {
          ID = "PHOENIXFX2_6";
          Sprite = "FX09";
          Frame = 32769;
          Tics = 2;
          Action = "A_FlameEnd";
          Next state = "PHOENIXFX2_7";
        }
    
        State {
          ID = "PHOENIXFX2_7";
          Sprite = "FX09";
          Frame = 32770;
          Tics = 2;
          Next state = "PHOENIXFX2_8";
        }
    
        State {
          ID = "PHOENIXFX2_8";
          Sprite = "FX09";
          Frame = 32771;
          Tics = 2;
          Next state = "PHOENIXFX2_9";
        }
    
        State {
          ID = "PHOENIXFX2_9";
          Sprite = "FX09";
          Frame = 32772;
          Tics = 2;
          Next state = "PHOENIXFX2_10";
        }
    
        State {
          ID = "PHOENIXFX2_10";
          Sprite = "FX09";
          Frame = 32773;
          Tics = 2;
          Next state = "NULL";
        }
    
        State {
          ID = "PHOENIXFXI2_1";
          Sprite = "FX09";
          Frame = 32774;
          Tics = 3;
          Next state = "PHOENIXFXI2_2";
        }
    
        State {
          ID = "PHOENIXFXI2_2";
          Sprite = "FX09";
          Frame = 32775;
          Tics = 3;
          Action = "A_FloatPuff";
          Next state = "PHOENIXFXI2_3";
        }
    
        State {
          ID = "PHOENIXFXI2_3";
          Sprite = "FX09";
          Frame = 32776;
          Tics = 4;
          Next state = "PHOENIXFXI2_4";
        }
    
        State {
          ID = "PHOENIXFXI2_4";
          Sprite = "FX09";
          Frame = 32777;
          Tics = 5;
          Next state = "PHOENIXFXI2_5";
        }
    
        State {
          ID = "PHOENIXFXI2_5";
          Sprite = "FX09";
          Frame = 32778;
          Tics = 5;
          Next state = "NULL";
        }
    
        Model {
          State = "PHOENIXFX2_1"
          Scale = 0
          Offset = 0
          Flags = alignpitch | alignyaw
          Md2{
              File = ""
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_1"
          Inter = 0
          Md2{
           Frame = "2"
              Skin = 2
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_2"
          Inter = 0.33
          Md2{
           Frame = "3"
              Skin = 3
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_3"
          Inter = 0.66
          Md2{
           Frame = "4"
              Skin = 4
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_4"
          Inter = 0
          Md2{
           Frame = "5"
              Skin = 5
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_5"
          Inter = 0.33
          Md2{
           Frame = "6"
              Skin = 6
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_6"
          Inter = 0
          Md2{
           Frame = "2"
              Skin = 2
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_7"
          Inter = 0.33
          Md2{
           Frame = "3"
              Skin = 3
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_8"
          Inter = 0.66
          Md2{
           Frame = "4"
              Skin = 4
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_9"
          Inter = 0
          Md2{
           Frame = "5"
              Skin = 5
           }
        }
    
        Copy Model {
          State = "PHOENIXFX2_10"
          Inter = 0.33
          Md2{
           Frame = "6"
              Skin = 6
           }
        }
    
        Model {
          State = "PHOENIXFXI2_1"
          Scale = 0
          Offset = 0
          Flags = alignpitch | alignyaw
          Md2{
              File = ""
           }
        }
    
        Copy Model {
          State = "PHOENIXFXI2_1"
          Inter = 0
          Md2{
           Frame = "2"
              Skin = 2
           }
        }
    
    
        Copy Model {
          State = "PHOENIXFXI2_2"
          Inter = 0.33
          Md2{
           Frame = "3"
              Skin = 3
           }
        }
    
        Copy Model {
          State = "PHOENIXFXI2_3"
          Inter = 0.66
          Md2{
           Frame = "4"
              Skin = 4
           }
        }
    
        Copy Model {
          State = "PHOENIXFXI2_4"
          Inter = 0
          Md2{
           Frame = "5"
              Skin = 5
           }
        }
    
        Copy Model {
          State = "PHOENIXFXI2_5"
          Inter = 0.33
          Md2{
           Frame = "6"
              Skin = 6
           }
        }
    
    Light {
      State = "PHOENIXFXI2_4"
      Color { 0.1 0.1 0.1 0.1 }
      Size = .25
    }
    Light {
      State = "PHOENIXFXI2_5"
      Color { 0.1 0.1 0.1 0.1 }
      Size = .125
    }
    
        Generator {
          State = "PHOENIXFX2_1"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFX2_2"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFX2_3"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFX2_4"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFX2_5"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFX2_6"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFX2_7"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFX2_8"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFX2_9"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFX2_10"
          Flags = srcvel | srcdir | blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5.8
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "pt_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        #END
        Generator {
          State = "PHOENIXFXI2_1"
          Flags = blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "Particle10";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 5;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFXI2_2"
          Flags = blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "PT_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 4;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFXI2_3"
          Flags = blend
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "PT_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 3;
           Resistance = .1;
           Color { 1 .2 0 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFXI2_3"
          Flags = srcvel | extra
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "PT_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 3;
           Resistance = .1;
           Color { .2 .2 .2 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFXI2_4"
          Flags = srcvel
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "PT_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 2;
           Resistance = .1;
           Color { .2 .2 .2 .2 };
           };
        }
    
        Generator {
          State = "PHOENIXFXI2_5"
          Flags = srcvel
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = 0.2
          Spawn radius = 5
          Spawn age = 1
          Max age = -1
          Particles = 3000
          Spawn rate = 20
          Vector rnd = 3
          Stage {
           Type = "PT_point";
           Flags = "ptf_bright";
           Tics = 5;
           Radius = 1;
           Resistance = .1;
           Color { .2 .2 .2 .2 };
           };
        }
    
    if you have another way to do it feel free to post it
  • Here's the problem I was having with it:
    There are 3,000 particles (!!!) called for EACH FRAME of the flame, each in its own, single Generator per frame. There are 15 frames altogether, for 45,000 separate particles being cached for each single flame that comes out and hits something. You've got more than 10 at a time on-screen when in full stream, so that's more than 450,000 particles that have to be cached in more than 75 generators! Since they aren't being released until something else comes along that makes the generators hit their limit of 128 (because of the -1 max age which doesn't allow the generator to time out on its own, because -1 is akin to "forever" in the definition for time), once you shoot out a stream, there has to be that many particles in memory until they get replaced by something else. It's extremely inefficient, and so that's one reason why I was saying go with mobj-based. Since you're using state-based, and if you were to stick with your approach, and since it's 20 particles (spawn rate of 20 and spawn age of 1), then there only needs to be Particles = 20, since that's all that's actually needed to be reserved for that generator.

    On the main dengine.net page, you ought to click on the Wiki link, then go to References > Definitions > Generators to get the best reference on this stuff.

    Here's how I would do it, and it would look pretty much the same, except for the end part which might be slightly different, but should be able to be calibrated to look how you want it:
    Model {
      State = "PHOENIXFX2_1"
      Sub { File = "" }
    }
    *Model { State = "PHOENIXFX2_2" }
    *Model { State = "PHOENIXFX2_3" }
    *Model { State = "PHOENIXFX2_4" }
    *Model { State = "PHOENIXFX2_5" }
    *Model { State = "PHOENIXFX2_6" }
    *Model { State = "PHOENIXFX2_7" }
    *Model { State = "PHOENIXFX2_8" }
    *Model { State = "PHOENIXFX2_9" }
    *Model { State = "PHOENIXFX2_10" }
    
    *Model { State = "PHOENIXFXI2_1" }
    *Model { State = "PHOENIXFXI2_2" }
    *Model { State = "PHOENIXFXI2_3" }
    # lets the mobj-based generator stop after this point
    *Model { State = "PHOENIXFXI2_4" Flags = noptc }
    *Model { State = "PHOENIXFXI2_5" }
    }
    
    Light {
      State = "PHOENIXFXI2_4"
      Color { 0.1 0.1 0.1 0.1 }
      Size = .25
    }
    Light {
      State = "PHOENIXFXI2_5"
      Color { 0.1 0.1 0.1 0.1 }
      Size = .125
    }
    
    ### Flame - constant generator while particles are allowed for that object
    Generator {
      Mobj = "PHOENIXFX2"
      Flags = blend | srcdir | srcvel | static
      Center { -4 0 0 }
      Speed = -1
      Speed rnd = .2
      Spawn radius = 5.8
      Spawn age = -1
      Max age = -1
      Particles = 250
      Spawn rate = 10
      Vector rnd = 3
      Stage {
        Type = point
        Flags = bright
        Tics = 5
        Radius = 4
        Resistance = .1
        Color { 1 .2 0 .2 }
      }
    }
    
    ### Smoke - begins on flame 3, and random length invisible stage allows it to appear later as though it were being generated later
    Generator {
      State = "PHOENIXFXI2_3"
      Flags = srcdir | srcvel
      Center { -4 0 0 }
      Speed = 1
      Speed rnd = .2
      Spawn radius = 5
      Spawn age = 1
      Max age = 15
      Particles = 60
      Spawn rate = 60
      Vector rnd = 3
      Stage {
        Type = point
        Tics = 10
        Rnd = 1
        Radius = 3
        Color { 0 0 0 0 }
        Gravity = -.2
      }
      Stage {
        Type = point
        Flags = bright
        Tics = 5
        Radius = 3
        Resistance = .1
        Color { .2 .2 .2 .2 }
        Gravity = -.2
      }
    }
    

    PS - there's a problem at the very end, because for some reason it generates a frame's worth of particles AFTER the end state... :|
  • i will take a look and if you do not do the end right you will get the extra non needed stuff it can happen with mine as well
  • @Psy
    I'd make the smoke given off at the end a lighter grey and also reduce the size of the dlight given off by the flame; it produces a way too huge a halo that pratically covers the screen.
  • Vermil wrote:
    @Psy
    I'd make the smoke given off at the end a lighter grey and also reduce the size of the dlight given off by the flame; it produces a way too huge a halo that pratically covers the screen.
    I didn't bother with calibrating it or anything - just tried to give an example of how to convert it to a more efficient format.
    If it were me, I would probably make a series of particles or models or both in order to get the fire and smoke down. :)
  • so like this
    Model {
          State = "PHOENIXFX2_1"
          Sub { File = "" }
        }
        *Model { State = "PHOENIXFX2_2" }
        *Model { State = "PHOENIXFX2_3" }
        *Model { State = "PHOENIXFX2_4" }
        *Model { State = "PHOENIXFX2_5" }
        *Model { State = "PHOENIXFX2_6" }
        *Model { State = "PHOENIXFX2_7" }
        *Model { State = "PHOENIXFX2_8" }
        *Model { State = "PHOENIXFX2_9" }
        *Model { State = "PHOENIXFX2_10" }
    
        *Model { State = "PHOENIXFXI2_1" }
        *Model { State = "PHOENIXFXI2_2" }
        *Model { State = "PHOENIXFXI2_3" }
        # lets the mobj-based generator stop after this point
        *Model { State = "PHOENIXFXI2_4" Flags = noptc }
        *Model { State = "PHOENIXFXI2_5" }
        }
    
        Light {
          State = "PHOENIXFX2_1"
          Color {1 .2 0}
          Size = .025
        }
        Light {
          State = "PHOENIXFX2_2"
          Color {1 .2 0}
          Size = .025
        }
        Light {
          State = "PHOENIXFX2_3"
          Color {1 .2 0}
          Size = .025
        }
    
        Light {
          State = "PHOENIXFX2_4"
          Color {1 .2 0}
          Size = .025
        }
    
        Light {
          State = "PHOENIXFX2_5"
          Color {1 .2 0}
          Size = .025
        }
    
        Light {
          State = "PHOENIXFX2_6"
          Color {1 .2 0}
          Size = .025
        }
    
        Light {
          State = "PHOENIXFX2_7"
          Color {1 .2 0}
          Size = .025
        }
        Light {
          State = "PHOENIXFX2_8"
          Color {1 .2 0}
          Size = .025
        }
    
        Light {
          State = "PHOENIXFX2_9"
          Color {1 .2 0}
          Size = .025
        }
    
        Light {
          State = "PHOENIXFX2_10"
          Color {1 .2 0}
          Size = .025
        }
    
        Light {
          State = "PHOENIXFXI2_1"
          Color {1 .2 0}
          Size = .25
        }
        Light {
          State = "PHOENIXFXI2_2"
          Color {1 .2 0}
          Size = .25
        }
        Light {
          State = "PHOENIXFXI2_3"
          Color { 0.1 0.1 0.1 0.1 }
          Size = .025
        }
        Light {
          State = "PHOENIXFXI2_4"
          Color { 0.1 0.1 0.1 0.1 }
          Size = .25
        }
        Light {
          State = "PHOENIXFXI2_5"
          Color { 0.1 0.1 0.1 0.1 }
          Size = .025
        }
    
        ### Flame - constant generator while particles are allowed for that object
        Generator {
          Mobj = "PHOENIXFX2"
          Flags = blend | srcdir | srcvel
          Center { -4 0 0 }
          Speed = -1
          Speed rnd = .2
          Spawn radius = 5.8
          Spawn age = -1
          Max age = -1
          Particles = 250
          Spawn rate = 10
          Vector rnd = 3
          Stage {
            Type = point
            Flags = bright
            Tics = 5
            Radius = 6.5
            Resistance = .1
            Color { 1 .2 0 .2 }
          }
        }
    
        ### Smoke - begins on flame 3, and random length invisible stage allows it to appear later as though it were being generated later
        Generator {
          State = "PHOENIXFXI2_3"
          Flags = srcdir | srcvel
          Center { -4 0 0 }
          Speed = 1
          Speed rnd = .2
          Spawn radius = 5
          Spawn age = 1
          Max age = 15
          Particles = 60
          Spawn rate = 60
          Vector rnd = 3
          Stage {
            Type = point
            Tics = 10
            Rnd = 1
            Radius = 3
            Color { 0 0 0 0 }
            Gravity = -.2
          }
          Stage {
            Type = point
            Flags = bright
            Tics = 5
            Radius = 3
            Resistance = .1
            Color { .4 .4 .4 .4 }
            Gravity = -.2
          }
        }
    


    I think it looks good now except for the little problem witch i can't solve
Sign In or Register to comment.