11.12.2020, 18:37
(Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2020, 14:15 von Bink Draconia.)
Ich kenne dein Objekt nicht, daher hier mal ein Partikelskript, das eine Flamme durch Anklicken ein- und ausschaltet.
Es gibt allerdings auch die Möglichkeit, Flammen mittels Textur(animation) darzustellen- dazu bräuchte es dann wieder ein anderes Skript, was dann aber auch in Abhängigkeit der Textur eingestellt werden muss (je nachdem aus wievielen Einzelbildern die Textur waagrecht und senkrecht besteht) ...
Es gibt allerdings auch die Möglichkeit, Flammen mittels Textur(animation) darzustellen- dazu bräuchte es dann wieder ein anderes Skript, was dann aber auch in Abhängigkeit der Textur eingestellt werden muss (je nachdem aus wievielen Einzelbildern die Textur waagrecht und senkrecht besteht) ...
Code:
float giHeight = 2.0; // Change this value to alter height.
integer giLighted = TRUE;
Flame()
{
llParticleSystem([
PSYS_PART_FLAGS, 0 | PSYS_PART_EMISSIVE_MASK | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK |
PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_BOUNCE_MASK,
PSYS_SRC_PATTERN,PSYS_SRC_PATTERN_ANGLE,
PSYS_PART_START_COLOR, <1.0, 0.5, 0.0>,
PSYS_PART_END_COLOR, <1.0, 1.0, 0.0>,
PSYS_PART_START_SCALE, <0.06000, 0.08000, 0.06000> * giHeight,
PSYS_PART_END_SCALE, <0.04000, 0.08000, 0.06000> * giHeight,
PSYS_SRC_ACCEL, <0.00000, 0.00000, 0.00000>,
PSYS_PART_MAX_AGE, 0.30000 * giHeight,
PSYS_SRC_BURST_RATE, 0.020000,
PSYS_SRC_BURST_PART_COUNT, 10,
PSYS_SRC_BURST_RADIUS, 0.001000,
PSYS_SRC_BURST_SPEED_MIN, 0.100000,
PSYS_SRC_BURST_SPEED_MAX, 0.500000,
PSYS_SRC_INNERANGLE, 1.550000,
PSYS_SRC_OUTERANGLE, 1.540000,
PSYS_SRC_OMEGA, <0.00000, 0.00000, 5.00000>,
PSYS_SRC_MAX_AGE, 0.000000,
PSYS_PART_START_ALPHA, 1.000000,
PSYS_PART_END_ALPHA, 0.100000
]);
}
Smoke()
{
llParticleSystem([
PSYS_PART_FLAGS, 0 | PSYS_PART_EMISSIVE_MASK | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK |
PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_BOUNCE_MASK,
PSYS_SRC_PATTERN,PSYS_SRC_PATTERN_ANGLE,
PSYS_PART_START_COLOR, <0.2, 0.2, 0.2>,
PSYS_PART_END_COLOR, <0.4, 0.4, 0.4>,
PSYS_PART_START_SCALE, <0.06000, 0.08000, 0.06000> * giHeight,
PSYS_PART_END_SCALE, <0.04000, 0.08000, 0.06000> * giHeight,
PSYS_SRC_ACCEL, <0.00000, 0.00000, 0.50000>,
PSYS_PART_MAX_AGE, 2.0000 * giHeight,
PSYS_SRC_BURST_RATE, 0.20000,
PSYS_SRC_BURST_PART_COUNT, 10,
PSYS_SRC_BURST_RADIUS, 0.001000,
PSYS_SRC_BURST_SPEED_MIN, 0.100000,
PSYS_SRC_BURST_SPEED_MAX, 0.500000,
PSYS_SRC_INNERANGLE, 1.550000,
PSYS_SRC_OUTERANGLE, 1.540000,
PSYS_SRC_OMEGA, <0.00000, 0.50000, 5.00000>,
PSYS_SRC_MAX_AGE, 0.000000,
PSYS_PART_START_ALPHA, 1.000000,
PSYS_PART_END_ALPHA, 0.100000
]);
llSleep(1.5);
llParticleSystem([]);
}
default
{
state_entry()
{
Flame();
}
on_rez(integer iStartParameter)
{
llResetScript();
}
touch_start(integer iNumberTouching)
{
integer i = 0;
do {
if (giLighted)
{
Smoke();
giLighted = FALSE;
}
else
{
Flame();
giLighted = TRUE;
}
++i;
} while (i < iNumberTouching);
}
}
Wenn du nichts Nettes zu sagen hast, sag lieber gar nichts...

