maxman
Well-known member
I have a problem when I want to attack an object in a certain condition. I already adjust the object's health points along with its max for the damage percentage rate system. However, I have a problem when it shows one animation with particles every time I attack it.
Here's what I want and am trying to do in order.
Here're the codes for the main one and its child one.
Child/Summoned one:
Here's what I want and am trying to do in order.
- Object stays in its idle state and can play its pain anim until that certain amount of its health point reaches to 80%.
- When that object has already reached 80% as an initial attack, there should be particles showing, but it shouldn't show them right after hitting it the second time and so.
- One animation shows particles and the other animation doesn't.
- When it reaches 70%, it should switch to another pain animation which is a follow animation acting similar to anim pain. Also, it should show particles in another animation after the first strike of the second phase. The following should not show particles.
Here're the codes for the main one and its child one.
C:
name Car
type obstacle
health 130
speed 10
facing 1
death 1
nomove 1
noatflash 1
nodieblink 3
antigrab 9999
nodieblink 3
load brokencar
anim idle #Normal
@script
void self = getlocalvar("self");
int maxhp = getentityproperty(self, "maxhealth");
int hp = getentityproperty(self, "health");
if(hp < maxhp*0.81){
changeentityproperty(self, "animation", openborconstant("ANI_FOLLOW1"));
}
@end_script
delay 1
offset 91 91
frame data/chars/bonus/car/0001.png
frame data/chars/bonus/car/0001.png
anim pain #Normal pain
@script
if(frame == 0){
void self = getlocalvar("self");
int hp = getentityproperty(self, "health");
int maxhp = getentityproperty(self, "maxhealth");
if(hp < maxhp*0.81){
performattack(self, openborconstant("ANI_FOLLOW11"));
}else if(hp < maxhp*0.71){
performattack(self, openborconstant("ANI_FOLLOW12"));
}else if(hp < maxhp*0.61){
performattack(self, openborconstant("ANI_FOLLOW13"));
}else if(hp < maxhp*0.51){
performattack(self, openborconstant("ANI_FOLLOW14"));
}else if(hp < maxhp*0.41){
performattack(self, openborconstant("ANI_FOLLOW15"));
}else if(hp < maxhp*0.31){
performattack(self, openborconstant("ANI_FOLLOW16"));
}else if(hp < maxhp*0.21){
performattack(self, openborconstant("ANI_FOLLOW17"));
}if(hp < maxhp*0.80){
performattack(self, openborconstant("ANI_FOLLOW21"));
}if(hp < maxhp*0.60){
performattack(self, openborconstant("ANI_FOLLOW22"));
}
}
@end_script
delay 6
offset 91 91
frame data/chars/bonus/car/0002.png
frame data/chars/bonus/car/0003.png
frame data/chars/bonus/car/0002.png
delay 2
frame data/chars/bonus/car/0001.png
anim follow1 #Damaged 1
@script
void self = getlocalvar("self");
int maxhp = getentityproperty(self, "maxhealth");
int hp = getentityproperty(self, "health");
if(hp < maxhp*0.71){
changeentityproperty(self, "animation", openborconstant("ANI_FOLLOW2"));
}if(hp < maxhp*0.80){
changeentityproperty(self, "animation", openborconstant("ANI_FOLLOW21"));
}
@end_script
delay 1
offset 91 91
@cmd spawnAni "brokencar" -33 23 0 openborconstant("ANI_IDLE") -2 4 0
@cmd spawnAni "brokencar" -21 46 0 openborconstant("ANI_FOLLOW1") -2 4 0
frame data/chars/bonus/car/0004.png
frame data/chars/bonus/car/0004.png
anim follow11 #pain 2
delay 6
offset 91 91
frame data/chars/bonus/car/0005.png
frame data/chars/bonus/car/0006.png
frame data/chars/bonus/car/0005.png
delay 2
frame data/chars/bonus/car/0004.png
anim follow2 #Damaged 2
@script
void self = getlocalvar("self");
int maxhp = getentityproperty(self, "maxhealth");
int hp = getentityproperty(self, "health");
if(hp < maxhp*0.61){
changeentityproperty(self, "animation", openborconstant("ANI_FOLLOW3"));
}
@end_script
delay 1
offset 91 91
frame data/chars/bonus/car/0007.png
frame data/chars/bonus/car/0007.png
anim follow12 #pain 3
delay 6
offset 91 91
frame data/chars/bonus/car/0008.png
frame data/chars/bonus/car/0009.png
frame data/chars/bonus/car/0008.png
delay 2
frame data/chars/bonus/car/0007.png
anim follow3 #Damaged 3
offset 91 91
delay 9
frame data/chars/bonus/car/0010.png
anim follow13 #pain 4
delay 6
frame data/chars/bonus/car/0011.png
frame data/chars/bonus/car/0012.png
frame data/chars/bonus/car/0011.png
delay 2
frame data/chars/bonus/car/0010.png
anim follow4 #Damaged 4
loop 1
delay 9
offset 91 91
frame data/chars/bonus/car/0013.png
anim follow14 #pain 5
delay 6
offset 91 91
frame data/chars/bonus/car/0014.png
frame data/chars/bonus/car/0015.png
frame data/chars/bonus/car/0014.png
delay 2
frame data/chars/bonus/car/0013.png
anim follow5 #Damaged 5
loop 1
delay 9
offset 91 91
frame data/chars/bonus/car/0016.png
anim follow15 #pain 6
delay 6
offset 91 91
frame data/chars/bonus/car/0017.png
frame data/chars/bonus/car/0018.png
frame data/chars/bonus/car/0017.png
delay 2
frame data/chars/bonus/car/0016.png
anim follow6 #Damaged 6
loop 1
delay 9
offset 91 91
frame data/chars/bonus/car/0019.png
anim follow16 #pain 7
delay 6
offset 91 91
frame data/chars/bonus/car/0020.png
frame data/chars/bonus/car/0021.png
frame data/chars/bonus/car/0020.png
delay 2
frame data/chars/bonus/car/0019.png
anim follow7 #Damaged 7
loop 1
delay 9
offset 91 91
frame data/chars/bonus/car/0022.png
anim follow17 #pain 8
delay 6
offset 91 91
frame data/chars/bonus/car/0023.png
frame data/chars/bonus/car/0024.png
frame data/chars/bonus/car/0023.png
delay 2
frame data/chars/bonus/car/0022.png
anim follow21 #After 1st phase damage
@script
void self = getlocalvar("self");
int maxhp = getentityproperty(self, "maxhealth");
int hp = getentityproperty(self, "health");
if(hp < maxhp*0.61){
changeentityproperty(self, "animation", openborconstant("ANI_FOLLOW3"));
}
@end_script
delay 1
offset 91 91
frame data/chars/bonus/car/0004.png
frame data/chars/bonus/car/0004.png
anim follow22 #After first hit of 2nd phase damage
delay 1
offset 91 91
frame data/chars/bonus/car/0007.png
frame data/chars/bonus/car/0007.png
anim death
loop 1
delay 34
offset 91 91
frame data/chars/bonus/car/0000.png
frame data/chars/bonus/car/0000.png
frame data/chars/bonus/car/0000.png
frame data/chars/bonus/car/0000.png
Child/Summoned one:
Code:
name brokencar
type none
facing 1
palette none
animationscript data/scripts/script.c
anim idle #Side window and front light
offset 91 91
delay 3
loop 1 0 4
landframe 4
frame data/chars/bonus/car/0028.png
drawmethod rotate 90
frame data/chars/bonus/car/0028.png
drawmethod rotate 180
frame data/chars/bonus/car/0028.png
drawmethod rotate 270
frame data/chars/bonus/car/0028.png
@cmd suicide
frame none
anim follow1 #
offset 91 91
delay 3
landframe 4
loop 1 0 4
frame data/chars/bonus/car/0029.png
drawmethod rotate 90
frame data/chars/bonus/car/0029.png
drawmethod rotate 180
frame data/chars/bonus/car/0029.png
drawmethod rotate 270
frame data/chars/bonus/car/0029.png
@cmd suicide
frame none