name Rarad
health 5
nomove 1 1
type enemy
cantgrab 1
nodrop 2
death 1
nopain 1
nolife 1
subject_to_gravity 0
subject_to_platform 0
offscreenkill 3000
diesound data/sounds/botdie.wav
animationscript data/scripts/enemy.c
takedamagescript data/scripts/blink.c
alternatepal data/chars/jylo/blink.png
alternatepal data/chars/jylo/map1.png
alternatepal data/chars/jylo/map2.png
alternatepal data/chars/jylo/map3.png
anim idle
loop 1
delay 6
offset 24 35
bbox 9 9 32 25
attack 9 9 32 25 5 1 1 1
frame data/chars/jylo/rarad1.png
@cmd target 0.8 0.8 0 -10 1 0
@cmd dash 0 0
frame data/chars/jylo/rarad2.png
frame data/chars/jylo/rarad3.png
@cmd target 0.8 0.8 0 -10 1 0
@cmd dash 0 0
frame data/chars/jylo/rarad2.png #
frame data/chars/jylo/rarad1.png
@cmd target 0.8 0.8 0 -10 1 0
@cmd dash 0 0
frame data/chars/jylo/rarad2.png
frame data/chars/jylo/rarad3.png
attack 0
@cmd target 0.8 0.8 0 -10 1 0
@cmd dash 0 0
frame data/chars/jylo/rarad2.png #
anim spawn
delay 6
offset 24 35
frame data/chars/jylo/rarad1.png
frame data/chars/jylo/rarad2.png
anim death
delay 10
offset 24 35
frame data/chars/jylo/raradD.png
frame data/chars/misc/empty.gif
frame data/chars/jylo/raradD.png
frame data/chars/misc/empty.gif
frame data/chars/jylo/raradD.png
@cmd dropperI 0 20
frame data/chars/misc/empty.gif
frame data/chars/jylo/raradD.png
@cmd suicide
frame data/chars/misc/empty.gif
void target0(float Velx, float Vely, float Tx, float Ty, float dx, float dy, void Vel, int Flip)
{// Basic Targetting certain coordinate before dashing
// Velx = Desired x Velocity
// Vely = Desired y Velocity
// Tx = target x coordinate
// Ty = target y coordinate
// dx = x added distance
// dy = y added distance
// Vel = Desired output
void self = getlocalvar("self");
int dir = getentityproperty(self, "direction");
float x = getentityproperty(self, "x");
float y = getentityproperty(self, "a");
float Vx;
float Vy;
if(Flip == 1){
if(Tx < x){
changeentityproperty(self, "direction", 0);
} else {
changeentityproperty(self, "direction", 1);
}
}
x = x+dx;
y = y+dy;
float Disx = Tx - x;
float Disy = Ty - y;
//Set both distance as positive value
if(Disx < 0){
Disx = -Disx;
}
if(Disy < 0){
Disy = -Disy;
}
// Calculate velocity for targetting
if(Disy < Disx)
{
if(Tx < x){
Vx = -Velx;
} else { Vx = Velx; }
Vy = Velx*(Ty-y)/Disx;
} else {
if(Ty < y){
Vy = -Vely;
} else { Vy = Vely; }
Vx = Vely*(Tx-x)/Disy;
}
if(Vel == "x"){
return Vx;
}
if(Vel == "y"){
return Vy;
}
}
void target1(void Target, float Velx, float Vely, float dx, float dy, int Stop, void Vel, int Flip)
{// Targetting certain entity before dashing
// Target = Targetted entity
// Velx = Desired x Velocity
// Vely = Desired y Velocity
// dx = x added distance
// dy = y added distance
// Stop = flag to stop moving if there's no target
void self = getlocalvar("self");
int dir = getentityproperty(self, "direction");
float x = getentityproperty(self, "x");
float y = getentityproperty(self, "a");
float Vx;
float Vy;
if (dir == 0){ //Is entity facing left?
dx = -dx; //Reverse X direction to match facing
}
if( Target != NULL()){
float Tx = getentityproperty(Target, "x");
float Ty = getentityproperty(Target, "a");
Vx = target0(Velx, Vely, Tx, Ty, dx, dy, "x", Flip);
Vy = target0(Velx, Vely, Tx, Ty, dx, dy, "y", Flip);
} else {
if(Stop == 1){
Vy = 0;
Vx = 0;
} else if(Stop == 2){
Vy = NULL();
Vx = NULL();
} else {
Vy = 0;
if(dir==0){
Vx = -Velx;
} else { Vx = Velx; }
}
}
if(Vel == "x"){
return Vx;
}
if(Vel == "y"){
return Vy;
}
}
void target(float Velx, float Vely, float dx, float dy, int Stop, int Flip)
{// Targetting opponent before leaping or dashing.
// Velx = x Velocity
// Vely = y Velocity
// dx = x added distance
// dy = y added distance
// Stop = flag to stop moving if no target is found
void self = getlocalvar("self");
setlocalvar("T"+self, findtarget(self)); //Get nearest player
void target = getlocalvar("T"+self);
setlocalvar("x"+self, target1(target, Velx, Vely, dx, dy, Stop, "x", Flip) );
setlocalvar("y"+self, target1(target, Velx, Vely, dx, dy, Stop, "y", Flip) );
setlocalvar("T"+self, NULL()); //Clears variable
}
void dash(int X, int Y)
{// Dash with previously attained speed!
void self = getlocalvar("self");
float Vx = getlocalvar("x"+self);
float Vy = getlocalvar("y"+self);
if( Vx!=NULL() && Vy!=NULL() ){
if( X==1 ){
Vy = 0;
} else if( Y==1 ){
Vx = 0;
}
changeentityproperty(self, "velocity", Vx, 0, Vy);
}
}
target(float Velx, float Vely, float dx, float dy, int Stop, int Flip)
void dash(int X, int Y)
also i put nomove 1 1 but the entity doesnt turn around for some reason
Gurtag said:the thing is that when i set platform on a obstacle, its blocking physics become inconsistent, it sometimes block player movement it somethimes dont and you can get inside the obstacle or pass it trough.
name prey
type obstacle
shadow 0
gfxshadow 1
health 2020
diesound data/chars/guard/fall.wav
nolife 1
flash eflash
noatflash 1
offscreenkill 2000
nodieblink 3
palette data/sprites/aniback/hea1.gif
alternatepal data/sprites/aniback/maprojo.gif
alternatepal data/sprites/aniback/mapverde.gif
alternatepal data/sprites/aniback/asulmap.gif
alternatepal data/sprites/aniback/freeze.gif
fmap 4
load full_health
anim death
loop 0
delay 9
offset 102 150
frame data/sprites/aniback/hea1p.gif
sound data/sounds/he1.wav
frame data/sprites/aniback/hea2p.gif
sound data/sounds/he1.wav
frame data/sprites/aniback/hea3p.gif
sound data/sounds/he1.wav
frame data/sprites/aniback/hea33p.gif
sound data/sounds/he1.wav
frame data/sprites/aniback/hea2p.gif
sound data/sounds/he1.wav
frame data/sprites/aniback/hea3p.gif
sound data/sounds/he1.wav
frame data/sprites/aniback/hea2p.gif
sound data/sounds/he1.wav
frame data/sprites/aniback/hea3p.gif
sound data/sounds/he1.wav
frame data/sprites/aniback/hea33p.gif
sound data/sounds/he1.wav
frame data/sprites/aniback/hea2p.gif
sound data/sounds/he1.wav
frame data/sprites/aniback/hea3p.gif
sound data/sounds/he1.wav
frame data/sprites/aniback/hea33p.gif
sound data/sounds/he1.wav
frame data/sprites/aniback/hea2p.gif
sound data/sounds/he1.wav
frame data/sprites/aniback/hea4p.gif
frame data/sprites/aniback/hea5p.gif
delay 8
offset 78 140
sound data/sounds/pitfall2.wav
frame data/sprites/aniback/br1.gif
frame data/sprites/aniback/br2.gif
frame data/sprites/aniback/br3.gif
frame data/sprites/aniback/br4.gif
frame data/sprites/aniback/br5.gif
frame data/sprites/aniback/br5.gif
frame data/sprites/aniback/br5.gif
frame data/sprites/aniback/br5.gif
anim idle
loop 1
subentity Full_Health
summonframe 2 -4 -4 0 0
platform 102 150 -24 -24 24 24 50 78
delay 12
bbox 26 49 94 101
offset 102 150
frame data/sprites/aniback/hea11.gif
frame data/sprites/aniback/hea22.gif
frame data/sprites/aniback/hea33.gif
frame data/sprites/aniback/hea44.gif
frame data/sprites/aniback/hea33.gif
frame data/sprites/aniback/hea22.gif
#|edited by openBor Stats v 0.53