Jump to content

Photo

OoT Gohma


  • Please log in to reply
27 replies to this topic

#1 -DuCkTApE-

-DuCkTApE-

    The "Mask" will take over...

  • Members

Posted 24 November 2012 - 05:34 PM

Just a normal Gohma but after you shoot its eye, it gets stunned, its eye turns red, and you have to hit it with your sword to kill it.
Is it possible?

Edited by -DuCkTApE-, 24 November 2012 - 05:36 PM.


#2 MoscowModder

MoscowModder

    Sometimes lurking. Rarely posting.

  • Members
  • Location:Wisconsin

Posted 24 November 2012 - 08:28 PM

That's definitely possible, but it would take a lot of time and effort to script, so don't be surprised if you don't see any takers immediately.

#3 tox_von

tox_von

    Zelda Addict

  • Members
  • Real Name:Redgor
  • Location:Toxicville , Simcity

Posted 25 November 2012 - 09:50 AM

i modified a gohma i made a few months ago what i did was make it so you shoot it 5 times then it freezes then you hit it with a sword to kill it. What else does it need i havent used it in a game i was only trying to learn how to make bosses.

DOWNLOAD EXAMPLE

CODE
import "std.zh"

ffc script gohma
{
    void run()
    {
       int b = 0;
       int c = 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;
       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)
          {
          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;
                   wpn->DeadState = WDS_DEAD;  
                   }            
                if (onehit == 1 && g2->Data == 369)  a = a -1;
                }
          }  
       }
       if (a > 1)
       {
       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;
                   wpn->DeadState = WDS_DEAD;  
                   }            
                if (onehit == 1 && g2->Data == 369)  a = a -1;
                }
          }  
        }
        }
        Waitframe();          
       }            
            
    }
}


#4 judasrising

judasrising

    I play guitar

  • Members
  • Location:Sweden but born in Finland

Posted 25 November 2012 - 11:17 AM

QUOTE(-DuCkTApE- @ Nov 25 2012, 01:34 AM) View Post

Just a normal Gohma but after you shoot its eye, it gets stunned, its eye turns red, and you have to hit it with your sword to kill it.
Is it possible?


Nice idea icon_smile.gif a Oot Gohma in a quest , like that idea icon_smile.gif


#5 -DuCkTApE-

-DuCkTApE-

    The "Mask" will take over...

  • Members

Posted 25 November 2012 - 12:08 PM

Do you think you can edit it where you shoot it 1 time and its stunned for D0 amount of time? And after that it starts moving again?

#6 tox_von

tox_von

    Zelda Addict

  • Members
  • Real Name:Redgor
  • Location:Toxicville , Simcity

Posted 25 November 2012 - 06:35 PM

i dont know how to do advanced stuff i think that would need a variable in the movement bit i can try later if noone else know how.

#7 tox_von

tox_von

    Zelda Addict

  • Members
  • Real Name:Redgor
  • Location:Toxicville , Simcity

Posted 26 November 2012 - 08:09 PM

i added the d bit but its in frames not seconds.

DOWNLOAD EXAMPLE

CODE
import "std.zh"

ffc script gohma
{
    void run(int d0)
    {
       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;
       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)
          {
          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;                  
                   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;                  
                   wpn->DeadState = WDS_DEAD;  
                   }            
                if (onehit == 1 && g2->Data == 369)  a = a -1;
                if (onehit == 1 && g2->Data == 369)  d = d0;
                }
          }  
        }
        }
        Waitframe();          
       }            
            
    }
}




#8 -DuCkTApE-

-DuCkTApE-

    The "Mask" will take over...

  • Members

Posted 27 November 2012 - 05:00 PM

Can you add sound effects to it?

#9 tox_von

tox_von

    Zelda Addict

  • Members
  • Real Name:Redgor
  • Location:Toxicville , Simcity

Posted 27 November 2012 - 06:02 PM

What sound effects?

#10 -DuCkTApE-

-DuCkTApE-

    The "Mask" will take over...

  • Members

Posted 27 November 2012 - 07:12 PM

Are you able to add sound effects to gohma even with that script (it getting hurt and dying)

#11 Jared

Jared

    Deified

  • Members
  • Real Name:Jared
  • Pronouns:He / Him
  • Location:New Hampshire

Posted 27 November 2012 - 07:14 PM

QUOTE(-DuCkTApE- @ Nov 27 2012, 07:12 PM) View Post

Are you able to add sound effects to gohma even with that script (it getting hurt and dying)

You can do that with the enemy editor in the second tab. That goes for any enemy. icon_smile.gif

#12 -DuCkTApE-

-DuCkTApE-

    The "Mask" will take over...

  • Members

Posted 27 November 2012 - 07:39 PM

But on the example, there is no enemy. Its just a script.

#13 tox_von

tox_von

    Zelda Addict

  • Members
  • Real Name:Redgor
  • Location:Toxicville , Simcity

Posted 27 November 2012 - 07:46 PM

i think i can do it its just an if statement and do stuff but i need to look up the functions i havent used sounds before.

#14 -DuCkTApE-

-DuCkTApE-

    The "Mask" will take over...

  • Members

Posted 27 November 2012 - 07:55 PM

Do you think you could do that for me please

#15 tox_von

tox_von

    Zelda Addict

  • Members
  • Real Name:Redgor
  • Location:Toxicville , Simcity

Posted 27 November 2012 - 08:28 PM

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.



0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users