// MAKANITO
// =================================
else if(this_ffc->Data == makanito){
if(makanito_level == 1){damage = 1;}
if(makanito_level == 2){damage = 2;}
if(makanito_level == 3){damage = 3;}
this_ffc->TileWidth = 2;
this_ffc->TileHeight = 2;
if ( (this_ffc->X < 0) || (this_ffc->X > 240) || (this_ffc->Y > 160) || (this_ffc->Y < 0)){
this_ffc->Data = 1;
this_ffc->CSet = 0;
this_ffc->X = 16;
this_ffc->Y = 16;
this_ffc->TileWidth = 1;
this_ffc->TileHeight = 1;
}
int tx = this_ffc->X;
int ty = this_ffc->Y;
enemy_number = Screen->NumNPCs();
while(enemy_number > 0){
enemy = Screen->LoadNPC(enemy_number);
int en_x = enemy->X;
int en_y = enemy->Y;
if( (Screen->ComboS[ComboAt(tx+8, ty+8)] == 0) &&
!(enemy->Tile==0) ){
if((tx > en_x) && (tx < en_x+32)
&& (ty > en_y-32) && (ty < en_y+32)){enemy->X++;
}
else{
if((tx < en_x) && (tx > en_x-32)
&& (ty > en_y-32) && (ty < en_y+32)){enemy->X--;
}
}
if((ty > en_y) && (ty < en_y+32)
&& (tx > en_x-32) && (tx < en_x+32)){enemy->Y++;
}
else{
if((ty < en_y) && (ty > en_y-32)
&& (tx > en_x-32) && (tx < en_x+32)){enemy->Y--;
}
}
}
if(Abs( (tx+8)-en_x)<=16 && Abs( (ty+8)-en_y)<=16 && !(enemy->Tile==0)){
if(enemy_1_damaged_counter == 0){
enemy_1_damaged = enemy; enemy_1_damaged_counter = 30; enemy_1_cset = enemy->CSet;Game->PlaySound(11);
}
else{
if(enemy_2_damaged_counter == 0){
if(enemy != enemy_1_damaged){
enemy_2_damaged = enemy; enemy_2_damaged_counter = 30; enemy_2_cset = enemy->CSet;Game->PlaySound(11);
}
}
else{
if(enemy_3_damaged_counter == 0){
if(enemy != enemy_1_damaged && enemy != enemy_2_damaged){
enemy_3_damaged = enemy; enemy_3_damaged_counter = 30; enemy_3_cset = enemy->CSet;Game->PlaySound(11);
}
}
else{
if(enemy_4_damaged_counter == 0){
if(enemy != enemy_1_damaged && enemy != enemy_2_damaged && enemy != enemy_3_damaged){
enemy_4_damaged = enemy; enemy_4_damaged_counter = 30; enemy_4_cset = enemy->CSet;Game->PlaySound(11);
}
}
else{
enemy_number = 1;
}
}
}
}
}
enemy_number--;
}
}
Oops! Here's the item script for this one!
// ITEM SCRIPT MAKANITO
// translation: deadly air
// It creates a vacuum that sucks in nearby enemies
// and can kill them instantly.
// At a high level this is probably the most powerful
// attack in the game. exp must be set accordingly.
// D0 - the CSet of the projectile
//=========================================================
item script Makanito{
void run (int cset){
int deadly_air_combo = 116;
ffc deadly_air = Screen->LoadFFC(6);
if (makanito_level == 1){
Game->PlaySound(11);
makanito_exp++;
if(Link->Dir == 0) {
deadly_air->X = Link->X - 8;
deadly_air->Y = Link->Y - 16;
deadly_air->Vy = -1;
deadly_air->Vx = 0;
deadly_air->Data = deadly_air_combo;
deadly_air->CSet = cset;
deadly_air->TileWidth = 2;
deadly_air->TileHeight = 2;
}
if(Link->Dir == 1) {
deadly_air->X = Link->X - 8;
deadly_air->Y = Link->Y + 16;
deadly_air->Vy = 1;
deadly_air->Vx = 0;
deadly_air->Data = deadly_air_combo;
deadly_air->CSet = cset;
deadly_air->TileWidth = 2;
deadly_air->TileHeight = 2;
}
if(Link->Dir == 2) {
deadly_air->X = Link->X - 16;
deadly_air->Y = Link->Y - 8;
deadly_air->Vx = -1;
deadly_air->Vy = 0;
deadly_air->Data = deadly_air_combo;
deadly_air->CSet = cset;
deadly_air->TileWidth = 2;
deadly_air->TileHeight = 2;
}
if(Link->Dir == 3) {
deadly_air->X = Link->X + 16;
deadly_air->Y = Link->Y - 8;
deadly_air->Vx = 1;
deadly_air->Vy = 0;
deadly_air->Data = deadly_air_combo;
deadly_air->CSet = cset;
deadly_air->TileWidth = 2;
deadly_air->TileHeight = 2;
}
}
else{
if (makanito_level == 2){
Game->PlaySound(35);
makanito_exp++;
if(Link->Dir == 0) {
deadly_air->X = Link->X;
deadly_air->Y = Link->Y - 16;
deadly_air->Vy = -1;
deadly_air->Vx = 0;
deadly_air->Data = deadly_air_combo+1;
deadly_air->CSet = cset;
}
if(Link->Dir == 1) {
deadly_air->X = Link->X;
deadly_air->Y = Link->Y + 16;
deadly_air->Vy = 1;
deadly_air->Vx = 0;
deadly_air->Data = deadly_air_combo+1;
deadly_air->CSet = cset;
}
if(Link->Dir == 2) {
deadly_air->X = Link->X - 16;
deadly_air->Y = Link->Y;
deadly_air->Vx = -1;
deadly_air->Vy = 0;
deadly_air->Data = deadly_air_combo+1;
deadly_air->CSet = cset;
}
if(Link->Dir == 3) {
deadly_air->X = Link->X + 16;
deadly_air->Y = Link->Y;
deadly_air->Vx = 1;
deadly_air->Vy = 0;
deadly_air->Data = deadly_air_combo+1;
deadly_air->CSet = cset;
}
}
else{
if (makanito_level == 3){
Game->PlaySound(35);
makanito_exp++;
if(Link->Dir == 0) {
deadly_air->X = Link->X;
deadly_air->Y = Link->Y - 16;
deadly_air->Vy = -1;
deadly_air->Vx = 0;
deadly_air->Data = deadly_air_combo+2;
deadly_air->CSet = cset;
}
if(Link->Dir == 1) {
deadly_air->X = Link->X;
deadly_air->Y = Link->Y + 16;
deadly_air->Vy = 1;
deadly_air->Vx = 0;
deadly_air->Data = deadly_air_combo+2;
deadly_air->CSet = cset;
}
if(Link->Dir == 2) {
deadly_air->X = Link->X - 16;
deadly_air->Y = Link->Y;
deadly_air->Vx = -1;
deadly_air->Vy = 0;
deadly_air->Data = deadly_air_combo+2;
deadly_air->CSet = cset;
}
if(Link->Dir == 3) {
deadly_air->X = Link->X + 16;
deadly_air->Y = Link->Y;
deadly_air->Vx = 1;
deadly_air->Vy = 0;
deadly_air->Data = deadly_air_combo+2;
deadly_air->CSet = cset;
}
}
else{
if (makanito_level == 4){
Game->PlaySound(35);
makanito_exp++;
if(Link->Dir == 0) {
deadly_air->X = Link->X;
deadly_air->Y = Link->Y - 16;
deadly_air->Vy = -1;
deadly_air->Vx = 0;
deadly_air->Data = deadly_air_combo+3;
deadly_air->CSet = cset;
}
if(Link->Dir == 1) {
deadly_air->X = Link->X;
deadly_air->Y = Link->Y + 16;
deadly_air->Vy = 1;
deadly_air->Vx = 0;
deadly_air->Data = deadly_air_combo+3;
deadly_air->CSet = cset;
}
if(Link->Dir == 2) {
deadly_air->X = Link->X - 16;
deadly_air->Y = Link->Y;
deadly_air->Vx = -1;
deadly_air->Vy = 0;
deadly_air->Data = deadly_air_combo+3;
deadly_air->CSet = cset;
}
if(Link->Dir == 3) {
deadly_air->X = Link->X + 16;
deadly_air->Y = Link->Y;
deadly_air->Vx = 1;
deadly_air->Vy = 0;
deadly_air->Data = deadly_air_combo+3;
deadly_air->CSet = cset;
}
}}}} //end of else statements
}
}
Edited by Gleeok, 06 March 2008 - 02:07 AM.