Solved I have a question about the random appearance of enemies.

Question that is answered or resolved.

DD Tokki

Well-known member
C:
name        EPortal
type        none
setlayer    1
lifespan    2
load        En1
load        En2
load        En3


anim    idle
    delay    5
    offset  100 30
    frame    data/chars/effects/arcana.png
    frame    data/chars/effects/arcana.png

anim    spawn
@script
  if(frame==1){
    void self = getlocalvar("self");
    int r = rand()%15+15;

    if(r > 20){
      performattack(self, openborconstant("ANI_FOLLOW1"));
    } else if(r > 10){
      performattack(self, openborconstant("ANI_FOLLOW2"));
    } else {
      performattack(self, openborconstant("ANI_FOLLOW3"));
    }
  }
@end_script
    delay    1
    offset  100 30
    frame    data/chars/effects/arcana.png
    frame    data/chars/effects/arcana.png

anim    follow1
    delay    5
    offset  100 30
    spawnframe 1 0 0 0 0
    custentity En1
    frame    data/chars/effects/arcana.png
    delay    500
    frame    data/chars/effects/arcana.png
    frame    data/chars/effects/arcana.png

anim    follow2
    delay    5
    offset  100 30
    spawnframe 1 0 0 0 0
    custentity En2
    frame    data/chars/effects/arcana.png
    delay    500
    frame    data/chars/effects/arcana.png
    frame    data/chars/effects/arcana.png

anim    follow3
    delay    5
    offset  100 30
    spawnframe 1 0 0 0 0
    custentity En3
    frame    data/chars/effects/arcana.png
    delay    500
    frame    data/chars/effects/arcana.png
    frame    data/chars/effects/arcana.png

I saw the script for the random appearance of enemies.
I wonder if palettes can also be added randomly here.
 
Last edited:
It's doable but you'd need to use script for spawning the enemy instead.
Something like this:
C:
name        EPortal
type        none
setlayer    1
lifespan    2
animationscript    data/scripts/enemy.c
load        En1
load        En2
load        En3


anim    idle
    delay    5
    offset  100 30
    frame    data/chars/effects/arcana.png
    frame    data/chars/effects/arcana.png

anim    spawn
@script
  if(frame==1){
    void self = getlocalvar("self");
    int r = rand()%15+15;

    if(r > 20){
      performattack(self, openborconstant("ANI_FOLLOW1"));
    } else if(r > 10){
      performattack(self, openborconstant("ANI_FOLLOW2"));
    } else {
      performattack(self, openborconstant("ANI_FOLLOW3"));
    }
  }
@end_script
    delay    1
    offset  100 30
    frame    data/chars/effects/arcana.png
    frame    data/chars/effects/arcana.png

anim    follow1
@script
    if(frame == 1){
      int M = rand()%2+2; // chooses palette from 0 to 4

      void Spawn = spawn01("En1", 0, 0, 0);
      changeentityproperty(Spawn, "map", M);
    }
@end_script
    delay    5
    offset  100 30
    frame    data/chars/effects/arcana.png
    delay    500
    frame    data/chars/effects/arcana.png
    frame    data/chars/effects/arcana.png

anim    follow2
@script
    if(frame == 1){
      int M = rand()%2+2; // chooses palette from 0 to 4

      void Spawn = spawn01("En2", 0, 0, 0);
      changeentityproperty(Spawn, "map", M);
    }
@end_script
    delay    5
    offset  100 30
    frame    data/chars/effects/arcana.png
    delay    500
    frame    data/chars/effects/arcana.png
    frame    data/chars/effects/arcana.png

anim    follow3
@script
    if(frame == 1){
      int M = rand()%2+2; // chooses palette from 0 to 4

      void Spawn = spawn01("En3", 0, 0, 0);
      changeentityproperty(Spawn, "map", M);
    }
@end_script
    delay    5
    offset  100 30
    frame    data/chars/effects/arcana.png
    delay    500
    frame    data/chars/effects/arcana.png
    frame    data/chars/effects/arcana.png

You'd need to have enemy.c with spawn01 function in it.
 
It's doable but you'd need to use script for spawning the enemy instead.
Something like this:
C:
name        EPortal
type        none
setlayer    1
lifespan    2
animationscript    data/scripts/enemy.c
load        En1
load        En2
load        En3


anim    idle
    delay    5
    offset  100 30
    frame    data/chars/effects/arcana.png
    frame    data/chars/effects/arcana.png

anim    spawn
@script
  if(frame==1){
    void self = getlocalvar("self");
    int r = rand()%15+15;

    if(r > 20){
      performattack(self, openborconstant("ANI_FOLLOW1"));
    } else if(r > 10){
      performattack(self, openborconstant("ANI_FOLLOW2"));
    } else {
      performattack(self, openborconstant("ANI_FOLLOW3"));
    }
  }
@end_script
    delay    1
    offset  100 30
    frame    data/chars/effects/arcana.png
    frame    data/chars/effects/arcana.png

anim    follow1
@script
    if(frame == 1){
      int M = rand()%2+2; // chooses palette from 0 to 4

      void Spawn = spawn01("En1", 0, 0, 0);
      changeentityproperty(Spawn, "map", M);
    }
@end_script
    delay    5
    offset  100 30
    frame    data/chars/effects/arcana.png
    delay    500
    frame    data/chars/effects/arcana.png
    frame    data/chars/effects/arcana.png

anim    follow2
@script
    if(frame == 1){
      int M = rand()%2+2; // chooses palette from 0 to 4

      void Spawn = spawn01("En2", 0, 0, 0);
      changeentityproperty(Spawn, "map", M);
    }
@end_script
    delay    5
    offset  100 30
    frame    data/chars/effects/arcana.png
    delay    500
    frame    data/chars/effects/arcana.png
    frame    data/chars/effects/arcana.png

anim    follow3
@script
    if(frame == 1){
      int M = rand()%2+2; // chooses palette from 0 to 4

      void Spawn = spawn01("En3", 0, 0, 0);
      changeentityproperty(Spawn, "map", M);
    }
@end_script
    delay    5
    offset  100 30
    frame    data/chars/effects/arcana.png
    delay    500
    frame    data/chars/effects/arcana.png
    frame    data/chars/effects/arcana.png

You'd need to have enemy.c with spawn01 function in it.
Currently, the script I am using includes spawn01, so it works without any problems.

int M = rand()%2+2; // chooses palette from 0 to 4

Here, I would like to have 9 or 10 palettes appear randomly.
 
Back
Top Bottom