Is there a way to add it to a level as script instead?
spawn empty
@script
void main()
{
int SFX = loadsample("data/sfx/01.wav");
playsample(SFX, 0, 120, 120, 100, 0);
}
@end_script
coords 0 654
at 640
spawn empty
@script
void main()
{
int r = rand()%5+5;
switch(r)
{
case 0:
playmusic("data/music/0.ogg", 1);
break;
case 1:
playmusic("data/music/1.ogg", 1);
break;
case 2:
playmusic("data/music/2.ogg", 1);
break;
case 3:
playmusic("data/music/3.ogg", 1);
break;
case 4:
playmusic("data/music/4.ogg", 1);
break;
case 5:
playmusic("data/music/5.ogg", 1);
break;
case 6:
playmusic("data/music/6.ogg", 1);
break;
case 7:
playmusic("data/music/7.ogg", 1);
break;
case 8:
playmusic("data/music/8.ogg", 1);
break;
case 9:
playmusic("data/music/9.ogg", 1);
break;
case 10:
playmusic("data/music/10.ogg", 1);
break;
default:
playmusic("data/music/0.ogg", 1);
break;
}
}
@end_script
coords 0 654
at 0
You can try this:
well, we think different on this (I am not saying that you are wrong). To me, extra work is to do something with more lines of code when you can do it way smaller. KISS way of coding.Changing music names to value means extra work
@cmd randMusic "1.ogg" "2.ogg" "3.ogg"
@cmd randMusic2 "1.ogg" "2.ogg" "3.ogg" "4.ogg" "5.ogg" "6.ogg"
void randMusic(char s1,char s2,char s3)
{
int r = rand()%300;
char mus;
if (r<=-100)
{
mus=s1;
}else if(r<=100){
mus=s2;
}else{
mus=s3;
}
playmusic("data/music/"+mus, 1);
}
void randMusic2(char s1,char s2,char s3,char s4,char s5,char s6)
{
int r = rand()%300+300;
char mus = "";
if (r<100){
mus=s1;
}else if(r<200){
mus=s2;
}else if(r<300){
mus=s3;
}else if(r<400){
mus=s4;
}else if(r<500){
mus=s5;
}else if(r<600){
mus=s6;
}
playmusic("data/music/"+mus, 1);
}
name Random_Musica
type none
speed 8
animationscript data/scripts/randmusic.c
anim idle
offset 1 1
delay 2
loop 0
@cmd randMusic2 "ryu.ogg" "ken.ogg" "joe2.ogg" "cody1.ogg" "balrog.ogg" "bison.ogg"
frame data/chars/misc/empty.gif
spawn empty
@script
void main()
{
int r = rand()%5+5;
switch(r)
{
case 0:
playmusic("data/music/ryu.ogg", 1);
break;
case 1:
playmusic("data/music/ken.ogg", 1);
break;
case 2:
playmusic("data/music/balrog.ogg", 1);
break;
case 3:
playmusic("data/music/bison.ogg", 1);
break;
case 4:
playmusic("data/music/cody1.ogg", 1);
break;
case 5:
playmusic("data/music/joe1.ogg", 1);
break;
case 6:
playmusic("data/music/akuma.ogg", 1);
break;
case 7:
playmusic("data/music/gou-ryu.ogg", 1);
break;
case 8:
playmusic("data/music/cody.ogg", 1);
break;
case 9:
playmusic("data/music/joe.ogg", 1);
break;
case 10:
playmusic("data/music/intro.ogg", 1);
break;
default:
playmusic("data/music/ryu.ogg", 1);
break;
}
}
@end_script
coords 0 654
at 0
name Randommusic
type none
anim idle
@script
if(frame==1){
playmusic("data/music/ken.ogg", 1);
}
if(frame==2){
void self = getlocalvar("self");
int r = rand()%30;
if( r > 10 ){
changeentityproperty(self, "animation", openborconstant("ANI_FOLLOW1"));
} else if( r < -10 ){
changeentityproperty(self, "animation", openborconstant("ANI_FOLLOW2"));
}
}
@end_script
loop 1
delay 1
offset 1 1
frame data/chars/misc/empty.gif
delay 20000
frame data/chars/misc/empty.gif
delay 1
frame data/chars/misc/empty.gif
anim follow1
@script
if(frame==1){
playmusic("data/music/bison.ogg", 1);
}
if(frame==2){
void self = getlocalvar("self");
int r = rand()%30;
if( r > 10 ){
setidle(self, openborconstant("ANI_IDLE"));
} else if( r < -10 ){
changeentityproperty(self, "animation", openborconstant("ANI_FOLLOW2"));
}
}
@end_script
loop 1
delay 1
offset 1 1
frame data/chars/misc/empty.gif
delay 25000
frame data/chars/misc/empty.gif
delay 1
frame data/chars/misc/empty.gif
anim follow2
@script
if(frame==1){
playmusic("data/music/ryu.ogg", 1);
}
if(frame==2){
void self = getlocalvar("self");
int r = rand()%30;
if( r > 10 ){
changeentityproperty(self, "animation", openborconstant("ANI_FOLLOW1"));
} else if( r < -10 ){
setidle(self, openborconstant("ANI_IDLE"));
}
}
@end_script
loop 1
delay 1
offset 1 1
frame data/chars/misc/empty.gif
delay 30000
frame data/chars/misc/empty.gif
delay 1
frame data/chars/misc/empty.gif
BTW what do 'case' and 'break' mean?
O Ilusionista said:I don't remember if OpenBOR script accepts DEFAULT. If not, you should create a CASE for that because its mandatory. You need to have at least one valid condition in case of something bad happen or all the CASES are false.BTW what do 'case' and 'break' mean?