Posted By: Ayumi
Crash in (some) action - 07/23/09 13:57
Hello,
I have had convert C-scipt particle code to lite c but
i have got an error.
Crash in magical_particles1.
Maybe, wrong parameter or skill?!
Don t know-.-
It s not a syntax mistake and i have look
in manual.
C-Script(original)
Lite-c converted by me
I have had convert C-scipt particle code to lite c but
i have got an error.
Crash in magical_particles1.
Maybe, wrong parameter or skill?!
Don t know-.-
It s not a syntax mistake and i have look
in manual.
C-Script(original)
Code:
bmap dust = <dust.tga>;
var partpos1;
var partrad1;
function move_magical_parts1
{
my.alpha+=(my.skill_a-my.alpha)/5*time;
if(abs(my.alpha-my.skill_a)<2){randomize();my.skill_a=random(50);}
if(abs(my.skill_x-my.skill_c)<2){randomize();my.skill_c=random(360);}
if(abs(my.skill_y-my.skill_d)<2){randomize();my.skill_d=random(360);}
if(abs(my.skill_z-(my.lifespan-400))<2){randomize();my.lifespan=random(360)+400;}
if(abs(my.vel_x-my.vel_z)<2){randomize();my.vel_z=random(my.skill_b);}
my.skill_x+=min((my.skill_c-my.skill_x)/200*time, 0.5);
my.skill_y+=min((my.skill_d-my.skill_y)/200*time, 0.5);
my.skill_z+=min((my.lifespan-my.skill_z-200)/50*time, 0.5);
my.vel_x+=min((my.vel_z-my.vel_x)/220*time, 0.5);
vec_set(my.x, vector(my.vel_x, 0,0));
vec_rotate(my.x, vector(my.skill_x, my.skill_y, my.skill_z));
vec_add(my.x, partpos1.x);
my.lifespan=max(my.lifespan, 1);
}
function magical_parts1
{
my.bmap=dust;
my.size=3;
my.flare=on;
my.bright=on;
my.alpha=50;
my.skill_a=50;
my.skill_b=partrad1;
my.vel_x=random(my.skill_b);
my.vel_z=random(my.skill_b);
my.lifespan=400;
my.function=move_magical_parts1;
}
action magical_particles1
{
my.invisible=on;
my.passable=on;
// my.skill1=10; // Numbers of Particles
// my.skill2=50; // Radius
vec_set(partpos1.x, my.x);
while(my.skill1>0)
{
randomize();
partrad1=my.skill2;
effect(magical_parts1, 1, vector(my.x+random(my.skill2)-(my.skill2/2), my.y+random(my.skill2)-(my.skill2/2), my.z+random(my.skill2)-(my.skill2/2)), nullvector);
my.skill1-=1;
wait(1);
}
}
Lite-c converted by me
Code:
BMAP* dust_tga = "core.tga";
var* partrad1;
VECTOR* partpos1;
function move_magical_parts1(PARTICLE* p)
{
p.alpha+=(p.skill_a-p.alpha)/5*time_step;
if(abs(p.alpha-p.skill_a)<2)
{
random_seed(0);
p.skill_a=random(50);
}
if(abs(p.skill_x-p.skill_c)<2)
{
random_seed(0);
p.skill_c=random(360);
}
if(abs(p.skill_y-p.skill_d)<2)
{
random_seed(0);
p.skill_d=random(360);
}
if(abs(p.skill_z-(p.lifespan-400))<2)
{
random_seed(0);
p.lifespan=random(360)+400;
}
if(abs(p.vel_x-p.vel_z)<2)
{
random_seed(0);
p.vel_z=random(p.skill_b);
}
p.skill_x+=minv((p.skill_c-p.skill_x)/200*time_step, 0.5);
p.skill_y+=minv((p.skill_d-p.skill_y)/200*time_step, 0.5);
p.skill_z+=minv((p.lifespan-p.skill_z-200)/50*time_step, 0.5);
p.vel_x+=minv((p.vel_z-p.vel_x)/220*time_step, 0.5);
vec_set(p.x, vector(p.vel_x, 0,0));
vec_rotate(p.x, vector(p.skill_x, p.skill_y, p.skill_z));
vec_add(p.x, partpos1.x);
p.lifespan=maxv(p.lifespan, 1);
}
function magical_parts1(PARTICLE* p)
{
p.bmap=dust_tga;
p.size=3;
set(p,BRIGHT);
p.alpha=50;
p.skill_a=50;
p.skill_b=partrad1;
p->vel_x=random(p.skill_b);
p->vel_z=random(p.skill_b);
p.lifespan=400;
p.event=move_magical_parts1;
}
action magical_particles1()
{
//set(my, PASSABLE|INVISIBLE);
//my.skill1=10; // Numbers of Particles
//my.skill2=50; // Radius
vec_set(my.x ,partpos1.x);
while(my.skill1>0)
{
random_seed(0);
partrad1=my.skill2;
effect(magical_parts1, 1, vector(my.x+random(my.skill2)-(my.skill2/2), my.y+random(my.skill2)-(my.skill2/2), my.z+random(my.skill2)-(my.skill2/2)), nullvector);
my.skill1-=1;
wait(1);
}
}