Gamestudio Links
Zorro Links
Newest Posts
Newbie Questions
by fairtrader. 12/05/23 14:22
Zorro Trader GPT
by TipmyPip. 12/04/23 11:34
Square root rule
by Smallz. 12/02/23 09:15
RTest not found error
by TipmyPip. 12/01/23 21:43
neural function for Python to [Train]
by TipmyPip. 12/01/23 14:47
Xor Memory Problem.
by TipmyPip. 11/28/23 14:23
Training with command line parameters
by TipmyPip. 11/26/23 08:42
Combine USD & BTC Pairs In Asset Loop
by TipmyPip. 11/26/23 08:30
AUM Magazine
Latest Screens
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Tactics of World War I
Who's Online Now
0 registered members (), 631 guests, and 2 spiders.
Key: Admin, Global Mod, Mod
Newest Members
fairtrader, hus, Vurtis, Harry5, KelvinC
19019 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Crash in (some) action #280604
07/23/09 13:57
07/23/09 13:57
Joined: Oct 2008
Posts: 679
Germany
Ayumi Offline OP
User
Ayumi  Offline OP
User

Joined: Oct 2008
Posts: 679
Germany
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)
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);
	}
}



Re: Crash in (some) action [Re: Ayumi] #280621
07/23/09 15:34
07/23/09 15:34
Joined: May 2004
Posts: 1,510
Denmark
Claus_N Offline
Serious User
Claus_N  Offline
Serious User

Joined: May 2004
Posts: 1,510
Denmark
maybe you need to allocate memory for 'partpos1' before using the vec_set command?

partpos1 = malloc(sizeof(VECTOR));

Last edited by Claus_N; 07/23/09 15:35.
Re: Crash in (some) action [Re: Claus_N] #280650
07/23/09 18:01
07/23/09 18:01
Joined: Aug 2007
Posts: 1,922
Schweiz
Widi Offline
Serious User
Widi  Offline
Serious User

Joined: Aug 2007
Posts: 1,922
Schweiz
Im writing in german because my english is not good enought to explain following:

Um einen Fehler einzugrenzen, gebrauche den Befehl "return;".
Setze diesen in die 2. Zeile der action magical_particles1().
Lass das Script laufen (run), wenn keine Fehlermeldung kommt, ist der code bis dahin ok. Schiebe return um eine Zeile nach unten, dasselbe wiederholt sich bis zu: effect(..). Schiebe return nun in die function magical_parts1(PARTICLE* p).

Und so weiter und so fort. So siehst du in welcher Zeile der Fehler liegt.

@Claus: for a vector you don`t have to allocate memory!

Re: Crash in (some) action [Re: Widi] #280721
07/23/09 23:11
07/23/09 23:11
Joined: Oct 2008
Posts: 679
Germany
Ayumi Offline OP
User
Ayumi  Offline OP
User

Joined: Oct 2008
Posts: 679
Germany
Danke euch.
Thx you.

... found it.
(Zu verdanken in erster Linie Rei_Ayanami,
da er auch alles ueber Partikel zur Zeit lernt)

Problem was:

VECTOR* partpos1; -->must be without "*"

and...

vec_set(my.x ,partpos1.x); ->must be "vec_set(partpos1.x. my.x );"


Und danke Vidi, das ist eine gute Idee


Last edited by Ayumi; 07/23/09 23:25.
Re: Crash in (some) action [Re: Ayumi] #280744
07/24/09 02:03
07/24/09 02:03
Joined: Oct 2008
Posts: 679
Germany
Ayumi Offline OP
User
Ayumi  Offline OP
User

Joined: Oct 2008
Posts: 679
Germany
Weis noc jemand zufaellig, wie man die Geschwindigkeit
von Partikeln berechnet?
Weil ich machen kann, as ich will...die bewegen sich
sau schnell-.-

Sie sollen aber langsam sein(wie z.B. ein normal gehender
Mensch...meine Partikel sind abe bei 200m/h;))

Weis jemand Rat?


Anybody know something about particle speed?
My particle in the air are to quick, like a car with
200km/h...

Thx


Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1