enemy arrow
name catrush
health 10
speed 10
type enemy
subtype arrow
gfxshadow 1
nolife 1
candamage enemy
subject_to_hole 1
no_adjust_base 0
noquake 1 1
palette data/chars/cat/run1.png
anim idle
loop 1
bouncefactor 1
attack1 27 7 35 19 3 1 0 0 5 12
loop 1
delay 14
offset 27 30
bbox 8 -5 28 35
frame data/chars/cat/run1.png
frame data/chars/cat/run2.png
frame data/chars/cat/run1.png
frame data/chars/cat/run4.png
frame data/chars/cat/run5.png
frame data/chars/cat/run6.png
attack 0
frame data/chars/cat/run1.png
anim fall
delay 14
offset 27 30
bbox 8 -5 28 35
attack1 27 7 35 19 3 1 0 0 5 12
frame data/chars/cat/run1.png
frame data/chars/cat/run2.png
frame data/chars/cat/run1.png
frame data/chars/cat/run4.png
frame data/chars/cat/run5.png
frame data/chars/cat/run6.png
void main()
{//Script for summoning 6 alley cats
void self = getlocalvar("self");
void target = getlocalvar("damagetaker"); // Get player who picks the item
int PIndex = getentityproperty(target,"playerindex"); // Get player's index
int PScore = getplayerproperty(PIndex,"score"); // Get player's score
int XPos = openborvariant("xpos"); //Get screen edge's position
int fX = -60; // Set distance from screen edge
int Zenter = (openborvariant("PLAYER_MIN_Z") + openborvariant("PLAYER_MAX_Z"))/2;
void vSpawn; //Spawn object.
if(PScore == NULL()){
PScore=0;
}
changeplayerproperty(PIndex, "score", PScore-1); // Reduce score a bit
//1st spawn
vSpawn = spawn01("catrush", 0, 40, 40);
changeentityproperty(vSpawn, "position", XPos+fX, Zenter);
changeentityproperty(vSpawn, "direction", 1);
//2nd spawn
vSpawn = spawn01("catrush1", 0, 40, 40);
changeentityproperty(vSpawn, "position", XPos+fX, Zenter-10);
changeentityproperty(vSpawn, "direction", 1);
//3rd spawn
vSpawn = spawn01("catrush2", 0, 0, 40, 40);
changeentityproperty(vSpawn, "position", XPos+fX, Zenter+10);
changeentityproperty(vSpawn, "direction", 1);
//4th spawn
vSpawn = spawn01("catrush", 0, 0, 40, 40);
changeentityproperty(vSpawn, "position", XPos+fX, Zenter+20);
changeentityproperty(vSpawn, "direction", 1);
//5th spawn
vSpawn = spawn01("catrush1", 0, 0, 40, 40);
changeentityproperty(vSpawn, "position", XPos+fX, Zenter-20);
changeentityproperty(vSpawn, "direction", 1);
//6th spawn
vSpawn = spawn01("catrush2", 0, 0, 40, 40);
changeentityproperty(vSpawn, "position", XPos+fX, Zenter+30);
changeentityproperty(vSpawn, "direction", 1);
}
void spawn01(void vName, float fX, float fY, float fZ)
{
//spawn01 (Generic spawner)
//Damon Vaughn Caskey
//07/06/2007
//
//Spawns entity next to caller.
//
//vName: Model name of entity to be spawned in.
//fX: X location
//fY: Y location
//fZ: Z location
void self = getlocalvar("self"); //Get calling entity.
void vSpawn; //Spawn object.
clearspawnentry(); //Clear current spawn entry.
setspawnentry("name", vName); //Acquire spawn entity by name.
vSpawn = spawn(); //Spawn in entity
changeentityproperty(vSpawn, "position", fX, fZ, fY); //Set spawn location.
return vSpawn; //Return spawn
}
void main()
{//Script for summoning 6 alley cats
void self = getlocalvar("self");
void target = getlocalvar("damagetaker"); // Get player who picks the item
int PIndex = getentityproperty(target,"playerindex"); // Get player's index
int PScore = getplayerproperty(PIndex,"score"); // Get player's score
int XPos = openborvariant("xpos"); //Get screen edge's position
int fX = -60; // Set distance from screen edge
int Zenter = (openborvariant("PLAYER_MIN_Z") + openborvariant("PLAYER_MAX_Z"))/2;
void vSpawn; //Spawn object.
if(PScore == NULL()){
PScore=0;
}
changeplayerproperty(PIndex, "score", PScore-1); // Reduce score a bit
//1st spawn
vSpawn = spawn01("catrush", 0, 20, 0);
changeentityproperty(vSpawn, "position", XPos+fX, Zenter);
changeentityproperty(vSpawn, "direction", 1);
//2nd spawn
vSpawn = spawn01("catrush1", 0, 30, 0);
changeentityproperty(vSpawn, "position", XPos+fX, Zenter-20);
changeentityproperty(vSpawn, "direction", 1);
//3rd spawn
vSpawn = spawn01("catrush2", 0, 20, 0);
changeentityproperty(vSpawn, "position", XPos+fX, Zenter-40);
changeentityproperty(vSpawn, "direction", 1);
//4th spawn
vSpawn = spawn01("catrush", 0, 30, 20);
changeentityproperty(vSpawn, "position", XPos+fX, Zenter +20);
changeentityproperty(vSpawn, "direction", 1);
//5th spawn
vSpawn = spawn01("catrush1", 0, 20, 40);
changeentityproperty(vSpawn, "position", XPos+fX, Zenter +40);
changeentityproperty(vSpawn, "direction", 1);
//6th spawn
vSpawn = spawn01("catrush2", 0, 30, 60);
changeentityproperty(vSpawn, "position", XPos+fX, Zenter +60);
changeentityproperty(vSpawn, "direction", 1);
}
void spawn01(void vName, float fX, float fY, float fZ)
{
//spawn01 (Generic spawner)
//Damon Vaughn Caskey
//07/06/2007
//
//Spawns entity next to caller.
//
//vName: Model name of entity to be spawned in.
//fX: X location
//fY: Y location
//fZ: Z location
void self = getlocalvar("self"); //Get calling entity.
void vSpawn; //Spawn object.
clearspawnentry(); //Clear current spawn entry.
setspawnentry("name", vName); //Acquire spawn entity by name.
vSpawn = spawn(); //Spawn in entity
changeentityproperty(vSpawn, "position", fX, fZ, fY); //Set spawn location.
return vSpawn; //Return spawn
}
Make the last 3 to spawn on a different animation, where there is a small delay (like an invisible frame) on the start of the animation.is anyone can tell me how can I set 3 waves of this 6 alley cats with a short delay between each of them activated by this milk item?
changeentityproperty(vSpawn, "animation", "ANI_FOLLOW1");
void main()
{//Script for summoning 18 alley cats
void self = getlocalvar("self");
void target = getlocalvar("damagetaker"); // Get player who picks the item
int PIndex = getentityproperty(target,"playerindex"); // Get player's index
int PScore = getplayerproperty(PIndex,"score"); // Get player's score
int XPos = openborvariant("xpos"); //Get screen edge's position
int edge = 10; // Set distance from screen edge of the first wave
int dist = 70; // Set distance from each wave
int Zenter = (openborvariant("PLAYER_MIN_Z") + openborvariant("PLAYER_MAX_Z"))/2;
void vSpawn; // Spawn object.
int fX; // Calculated X position
int maxCount = 3; // Used to define how much waves will be spawned
int add = 1; // Used to add+1 to the wave counter
if(PScore == NULL()){
PScore=0;
}
// Start wave counter variable if null
if(getlocalvar("catCount"+self) == NULL()){setlocalvar("catCount"+self, 0);}
while(getlocalvar("catCount"+self) < maxCount){ // Repeat the entire script until the maximum number os waves is not reached
fX = XPos-edge-(dist*getlocalvar("catCount"+self));// Calculate the correct distance from the screen edge and between each wave
changeplayerproperty(PIndex, "score", PScore-1); // Reduce score a bit
//1st spawn
vSpawn = spawn01("catrush", 0, 20, 0);
changeentityproperty(vSpawn, "position", fX, Zenter);
changeentityproperty(vSpawn, "direction", 1);
//2nd spawn
vSpawn = spawn01("catrush1", 0, 30, 0);
changeentityproperty(vSpawn, "position", fX, Zenter-20);
changeentityproperty(vSpawn, "direction", 1);
//3rd spawn
vSpawn = spawn01("catrush2", 0, 20, 0);
changeentityproperty(vSpawn, "position", fX, Zenter-40);
changeentityproperty(vSpawn, "direction", 1);
//4th spawn
vSpawn = spawn01("catrush", 0, 30, 20);
changeentityproperty(vSpawn, "position", fX, Zenter +20);
changeentityproperty(vSpawn, "direction", 1);
//5th spawn
vSpawn = spawn01("catrush1", 0, 20, 40);
changeentityproperty(vSpawn, "position", fX, Zenter +40);
changeentityproperty(vSpawn, "direction", 1);
//6th spawn
vSpawn = spawn01("catrush2", 0, 30, 60);
changeentityproperty(vSpawn, "position", fX, Zenter +60);
changeentityproperty(vSpawn, "direction", 1);
setlocalvar("catCount"+self, getlocalvar("catCount"+self)+add); // Add +1 to the wave counter variable
}
}
void spawn01(void vName, float fX, float fY, float fZ)
{
//spawn01 (Generic spawner)
//Damon Vaughn Caskey
//07/06/2007
//
//Spawns entity next to caller.
//
//vName: Model name of entity to be spawned in.
//fX: X location
//fY: Y location
//fZ: Z location
void self = getlocalvar("self"); //Get calling entity.
void vSpawn; //Spawn object.
clearspawnentry(); //Clear current spawn entry.
setspawnentry("name", vName); //Acquire spawn entity by name.
vSpawn = spawn(); //Spawn in entity
changeentityproperty(vSpawn, "position", fX, fZ, fY); //Set spawn location.
return vSpawn; //Return spawn
}