O Ilusionista
Captain 100K
Yes, it is. It has some issues with cutscenes but the game is totally playable on android.
mersox said:Thanks for the comments, guys.
erf_beto said:I LOVE the part where Lord Zedd appears on the sidebar and send lightning bolts on rangers! Very good!
Thanks! That was actually my brother's idea. I was looking for something to break the monotony of punching bad guys. So far the plan is to have at least one element like this in each stage. Could be a car trying to run you over, fireballs falling from the sky, a bridge with a bunch of holes, etc.
By the way those bolts seem to appear in different coords each time I play the stage. No idea why, but in this case it's a good thing I guess.
darknior said:I'm not a great Power Ranger fan, but i'm sure your game will cool and fun to play![]()
That's the idea!
---------------------------
nsw25 I can't find the demo so I'll just cut and paste Bloodbane's method here.
This is what you do:
1.- Create a script called sceneFX.c
It will contain this:
void suicide()
{ // Suicide!!
void self = getlocalvar("self");
killentity(self); //Suicide!
}
void looper(int Frame, int Limit)
{// Loops current animation
void self = getlocalvar("self");
void loop = getlocalvar("Loop" + self);
if(loop==NULL()){ // Localvar empty?
setlocalvar("Loop" + self, 0);
loop = 0;
}
if(loop < Limit){ // loops reach limit?
updateframe(self, Frame); //Change frame
setlocalvar("Loop" + self, loop+1); // Increment number of loops
} else if(loop==Limit){ // loops reach limit?
setlocalvar("Loop" + self, NULL());
}
}
void DeControl(int P, int Flag)
{// Activates or deactivates control for defined player
// P : Player index starting from 0
// Flag : Control flag
int Player = getplayerproperty(P, "entity");
if (Player != NULL()){
changeentityproperty(Player,"noaicontrol",Flag);
}
}
void AnimPlayer(int P, void Ani)
{// Forces defined player to play certain animation
// P : Player index starting from 0
// Ani : Animation to play to
int Player = getplayerproperty(P, "entity");
if (Player != NULL()){
performattack(Player, openborconstant(Ani));
}
}
void IdlPlayer(int P)
{// Forces defined player to go to IDLE
// P : Player index starting from 0
int Player = getplayerproperty(P, "entity");
if (Player != NULL()){
setidle(Player, openborconstant("ANI_IDLE"));
}
}
void MovePlayer(int P, float Vx, float Vy, float Vz)
{// Forces defined player to move with defined speed
// P : Player index starting from 0
int Player = getplayerproperty(P, "entity");
if (Player != NULL()){
changeentityproperty(Player, "velocity", Vx, Vz, Vy);
}
}
void DirPlayer(int P, int Dir)
{// Changes defined player's direction
// P : Player index starting from 0
// Dir : Direction
int Player = getplayerproperty(P, "entity");
if (Player != NULL()){
changeentityproperty(Player, "direction", Dir);
}
}
2.- Create a character called "delay". Its file contains:
name delay
health 10
type enemy
nomove 1 1
stealth 350
antigravity 100
subject_to_wall 0
offscreenkill 3000
nodrop 2
defense normal9 0 2000
anim idle
@script
void self = getlocalvar("self");
int Health = getentityproperty(self, "health");
if(frame==1){
changeentityproperty(self, "health", Health-5);
if (Health <= 0){
killentity(self);
}
}
@end_script
loop 1
delay 49
offset 1 1
frame data/chars/misc/empty.gif
delay 1
frame data/chars/misc/empty.gif
anim spawn
delay 1
offset 1 1
frame data/chars/misc/empty.gif
3.- Create a character named Victory1
name Victory1
type none
offscreenkill 3000
subject_to_gravity 0
animationscript data/scripts/sceneFX.c
anim idle
delay 10
offset 1 1
frame data/chars/misc/empty.gif
delay 100
@cmd DeControl 0 1
@cmd MovePlayer 0 0 0 0
frame data/chars/misc/empty.gif
delay 250
@cmd DirPlayer 0 1
@cmd AnimPlayer 0 "ANI_FOLLOW1"
frame data/chars/misc/empty.gif
@cmd jumptobranch "Akhir" 1
frame data/chars/misc/empty.gif
4.- Create char Victory2
name Victory2
type none
offscreenkill 3000
subject_to_gravity 0
animationscript data/scripts/sceneFX.c
anim idle
delay 10
offset 1 1
frame data/chars/misc/empty.gif
delay 100
@cmd DeControl 1 1
@cmd MovePlayer 1 0 0 0
frame data/chars/misc/empty.gif
delay 250
@cmd DirPlayer 1 1
@cmd AnimPlayer 1 "ANI_FOLLOW1"
frame data/chars/misc/empty.gif
@cmd jumptobranch "Akhir" 1
frame data/chars/misc/empty.gif
5.- Create a followanim1 animation for your character for his/her victory animation. If you name it differently than followanim1, change Victory1 and Victory2 accordingly.
6.- Add this at the end of your level:
group 1 1
at **insert correct coordenate here**
spawn delay
coords 160 200
at 0
spawn Victory1
coords 160 200
at 0
spawn Victory2
coords 160 200
at 0
spawn delay
health 2000
coords 160 200
at 0
That's it. If you want a victory music, set it up as the boss music of the level and say that the fist delay you spawn is "boss 1".
Here's Bloodbane's explanation:
The entity responsible of activating victory animation are Victory1 and Victory2, for player1 and player2 respectively. This entity works like this:
- 1st it deactivates player's control of hero while stopping hero's movement at same time (in case hero is moving at this time).
- One second delay is given to wait for hero to stop his current animation, in case he is performing specials which usually takes about one second.
- After delay is over, hero is forced to face right direction. At same time, his animation is changed to FOLLOW1 which is the victory animation. Since this animation usually takes some time to play, 2.5 seconds delay is given
- After that, current level is ended
This method is not fixed, those delays can be changed so does victory animation.
Last this method can be expanded allowing more features to be added![]()