User Tools

Site Tools


4rpl:commands:createmist

Index
Effects

CreateMist

CreateMist(<-pos <-initParams)

Description

Creates a mist at the specified position. A mist is a small piece of 'fog'. The init params control its behavior. The possible values in initTable are:

  • “color” : The color of the mist. White is the default color. A Vector.
  • “color2” : If specified, the mist color will be randomly lerped from color to color2.
  • “birthtime” : The amount of time, in frames, that the mist will not fade. The mist's total lifetime is birthtime+fadetime.
  • “fadetime” : The amount of time, in frames, that the mist fades out. The mist's total lifetime is birthtime+fadetime.
  • “direction” : The direction and speed that the mist moves. A Vector.
  • “startradius” : The radius around the starting position that the mist is created. A random location is chosen with the radius. The direction is perpendicular to the plane that the starting point will be in.
  • “endradius” : The radius around the 'ending' position that the mist is created. The ending position is at a distance based on the direction vector. The end is not related to the birth and fade time.

Each value in the color and color2 vectors is a floating point number where 1 is full brightness and 0 is minimal brightness. Values over 1 make the mist glow.

:NOTE: There is a hidden hard cap for the amount of mist that can exist. When reached, no additional mist will be created.
Avoid calling this API every frame to avoid reaching this cap. Every 5 frames is far more reasonable.

Examples

if (-?initData not)
   Table("color" V3(1 0.8 0.8)
         "color2" V3(0.2 0 0)
         "birthtime" 40
         "fadetime" 20
         "direction" V3(1 5 1.5)
         "startradius" 0.5
         "endradius" 1	) ->initData
endif
CreateMist(V3(10 1 10 ) <-initData)
once
   Table("color" V3(1 1 1)
         "birthtime" 0
         "fadetime" 20
         "direction" V3(0 1 0)
         "startradius" 0
         "endradius" 10 ) ->initData
   do(50 0)
      CreateMist(V3(10 1 10 ) <-initData)
   loop
endonce
 
#This creates a ring-shaped burst of mist particles near the bottom-left corner of the map
#Since "direction" represents a vertical axis (in this case "up"), the ring will expand horizontally around said axis
#By swapping the "startradius" and "endradius" values, the ring will instead collapse inward
if(GetUnitUpdateCount 5 % eq0) #Ensure we don't make uneccessary mist.
	CreateMist(GetUnitPosition(self) <-initData)
endif
 
:Once
	Table("color" V3(1 0.8 0.8)
    "color2" V3(0.2 0 0)
    "birthtime" 40
    "fadetime" 20
    "direction" V3(1 5 1.5)
    "startradius" 0.5
    "endradius" 1) ->initData

Copy and paste preset:

Table("color" V3(1 0.8 0.8)
    "color2" V3(0.2 0 0)
    "birthtime" 40
    "fadetime" 20
    "direction" V3(1 5 1.5)
    "startradius" 0.5
    "endradius" 1) ->initData

Index

4rpl/commands/createmist.txt · Last modified: 2024/02/03 18:05 by Vertu