i added 3 sounds d1-3 one for when dead one for hitting the gohma with an arrow and sword.
i dont know what sounds are the correct ones but i used random ones the d functions can be used to change these.
DOWNLOAD EXAMPLE CODE
import "std.zh"
ffc script gohma
{
void run(int d0, int d1 , int d2 , int d3)
{
int b = 0;
int c = 0;
int d = 0;
int frame = 0;
ffc g1 = Screen->LoadFFC(1);
g1->X = 50;
g1->Y = 50;
g1->CSet = 8;
g1->Data = 364;
ffc g2 = Screen->LoadFFC(2);
g2->X = g1->X+16;
g2->Y = g1->Y;
g2->CSet = 8;
g2->Data = 365;
ffc g3 = Screen->LoadFFC(3);
g3->X = g1->X+32;
g3->Y = g1->Y;
g3->CSet = 8;
g3->Data = 366;
bool collision = false;
lweapon sword;
int number_weapons = 0;
int a = 5;
int onehit = 0;
int donesound = 0;
while(true)
{
if (a == 1)
{
g1->CSet = 7;
g2->CSet = 7;
g3->CSet = 7;
}
if (a > 0)
{
if ((Distance(g1->X, g1->Y, Link->X, Link->Y) <= 5) || (Distance(g2->X, g2->Y, Link->X, Link->Y) <= 5)
|| (Distance(g3->X, g3->Y, Link->X, Link->Y) <= 5))
{
Link->HP -=5;
if (Link->Dir== 0) Link->Y += 20;
if (Link->Dir== 1) Link->Y -= 20;
if (Link->Dir== 2) Link->X += 20;
if (Link->Dir== 3) Link->X -= 20;
}
}
if (a == 0)
{
if (donesound == 0) Game->PlaySound(d1);
donesound = 1;
g1->Data = 0;
g2->Data = 0;
g3->Data = 0;
}
if (Link->Action == 0) onehit = 0;
if (a > 0)
{
if (a == 1)
{
if (onehit == 0)
{
int i;
for(i=1; i<=Screen->NumLWeapons(); i++)
{
lweapon wpn = Screen->LoadLWeapon(i);
if((wpn->ID==LW_SWORD && Collision(g1, wpn))) wpn->DeadState = WDS_DEAD;
if((wpn->ID==LW_SWORD && Collision(g3, wpn))) wpn->DeadState = WDS_DEAD;
if((wpn->ID==LW_SWORD && Collision(g2, wpn)))
{
onehit = 1;
Game->PlaySound(d2);
wpn->DeadState = WDS_DEAD;
}
if (onehit == 1 && g2->Data == 369) a = a -1; }
}
}
if (d > 0) d = d -1;
if (a > 1 && d == 0 )
{
frame++;
if (frame > 0 && frame < 100) g1->X++;
if (frame > 101 && frame < 150) g1->X--;
if (frame > 151 && frame < 200) g1->Y++;
if (frame > 201 && frame < 250) g1->Y--;
if (frame > 251 && frame < 300) g1->X--;
if (frame == 301) frame = 0;
g2->X = g1->X+16;
g2->Y = g1->Y;
g3->X = g1->X+32;
g3->Y = g1->Y;
if (frame == (c*50)+1)
{
eweapon fire=CreateEWeaponAt(EW_FIREBALL,g2->X,g2->Y);
fire->Damage = 1;
fire->Angular = true;
fire->Angle = DegtoRad(Angle(g2->X,g2->Y,Link->X,Link->Y));
fire->Dir = RadianAngleDir8(WrapAngle(fire->Angle));
c = c +1;
}
if (frame == 300)
{
c = 0;
if (b == 0) g2->Data = 365;
if (b == 1) g2->Data = 369;
b = b + 1;
if (b == 2) b = 0;
}
if (onehit == 0)
{
int i;
for(i=1; i<=Screen->NumLWeapons(); i++)
{
lweapon wpn = Screen->LoadLWeapon(i);
if((wpn->ID==LW_ARROW && Collision(g1, wpn))) wpn->DeadState = WDS_DEAD;
if((wpn->ID==LW_ARROW && Collision(g3, wpn))) wpn->DeadState = WDS_DEAD;
if((wpn->ID==LW_ARROW && Collision(g2, wpn)))
{
onehit = 1;
Game->PlaySound(d3);
wpn->DeadState = WDS_DEAD;
}
if (onehit == 1 && g2->Data == 369) a = a -1;
if (onehit == 1 && g2->Data == 369) d = d0;
}
}
}
}
Waitframe();
}
}
}
Edited by tox_von, 27 November 2012 - 08:29 PM.