Final Fantasy Wiki
Advertisement

The Zaghnol is an enemy from Final Fantasy IX. Two versions of the enemy are fought, the first as the boss of the Festival of the Hunt, and the second as a random encounter in Pinnacle Rocks as well as various overworld areas of the Outer Continent: near Conde Petie, Desert Palace, and Mognet Central.

The Zaghnol can use Electrocute to charge itself up. Once electrocuted, it counters all attacks with Thundara that hits all party members. In the Festival of the Hunt, the player can steal the useful Needle Fork for Quina from it, and the outcome matters for the winner calculations, which determines the prize the player gets. In some versions, Freya cannot deal the finishing blow on the beast unless Zidane is KO'd (see AI script below). If both Freya and Zidane are defeated, Vivi wins the festival.

Quina's LV4 Holy works against the random encounter version of the enemy.

Stats[]

#35

#80

Formations[]

Enemies Frequency AP
????
Can't escape. Defeat does not result in Game Over. Characters do not pose on victory. No rewards given.
Zaghnol (#035) 100% 3
????
None
Zaghnol (#080) 100% 2
????
None
Zaghnol (#080) 100% 3

AI script[]

Festival of the Hunt[]

Using global variable zidane
Using global variable freya
Using general variable Hunt_ZidaneFailZaghnol
Using general variable Hunt_FreyaFailZaghnol
Using general variable Hunt_ZidaneFinishZaghnol

Function Zaghnol_Init
   set attacklist = [ Heave ; Thunder ; Electrocute ; Thunder ]


Function Zaghnol_Loop
   if ( !initflag )
      set initflag = TRUE
      set lasthp = SV_FunctionEnemy[HP]
      set zidane = ( SV_PlayerTeam[MODEL_TYPE] == 0 )
      set zidane |= ( SV_PlayerTeam[MODEL_TYPE] == 1 )
      set freya = ( SV_PlayerTeam[MODEL_TYPE] == 12 )
   if ( #( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) & zidane ) )
      set Hunt_ZidaneFailZaghnol = FALSE
   else
      set Hunt_ZidaneFailZaghnol = TRUE
   if ( #( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) & freya ) )
      set Hunt_FreyaFailZaghnol = FALSE
   else
      set Hunt_FreyaFailZaghnol = TRUE
   if ( SV_FunctionEnemy[HP] <= 10000 )
      set SV_FunctionEnemy[HP] = 0
   Wait( 1 )
   loop


Function Zaghnol_ATB
   if ( electrocuteflag )
      set thundertarget = RandomInTeam(SV_PlayerTeam)
      set electrocutetarget = 0
      set multithundertarget = SV_PlayerTeam
   else
      set thundertarget = 0
      set electrocutetarget = SV_FunctionEnemy
      set multithundertarget = 0
   set selectedattack = RandomAttack( attacklist )
   if ( selectedattack == Heave )
      set SV_Target = RandomInTeam(SV_PlayerTeam)
   elseif ( selectedattack == Thunder )
         set SV_Target = thundertarget
   elseif ( selectedattack == Electrocute )
         set SV_Target = electrocutetarget
   elseif ( selectedattack == Thunder )
         set SV_Target = multithundertarget
   Attack( selectedattack )


Function Zaghnol_CounterEx
   if (GetAttackId == Electrocute )
      set SV_FunctionEnemy[ELEMENT_HALF] &= ~THUNDER
      set SV_FunctionEnemy[ELEMENT_ABSORB] |= THUNDER
      set electrocuteflag = 1
      return
   set healhp = 0
   set hp = SV_FunctionEnemy[HP]
   if ( lasthp > hp )
      set healhp = ( lasthp - hp )
   set lasthp = hp
   if ( healcounter > 10 )
      return
   if ( SV_FunctionEnemy[HP] > 10000 )
      return
   if ( GetAttacker == zidane )
      set Hunt_ZidaneFinishZaghnol = TRUE
      return
   set Hunt_ZidaneFinishZaghnol = FALSE
   if ( !( #( SV_PlayerTeam & zidane ) ) )
      return
   if ( #Matching(zidane[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) )
      return
   if ( !healhp )
      return
   set SV_FunctionEnemy[HP] += healhp
   set lasthp = SV_FunctionEnemy[HP]
   if ( healcounter < 255 )
      set healcounter++


Random encounter[]

Function Zaghnol_Init
   set attacklist = [ Heave ; Thundara ; Electrocute ]
   set hplimitmultithundara = SV_FunctionEnemy[HP] / 4


Function Zaghnol_ATB
   if ( electrocuteflag )
      set thundaratarget = RandomInTeam(SV_PlayerTeam)
      set electrocutetarget = 0
   else
      set thundaratarget = 0
      set electrocutetarget = ( SV_Target = SV_FunctionEnemy )
   set selectedattack = RandomAttack( attacklist )
   if ( selectedattack == Heave )
      set SV_Target = RandomInTeam(SV_PlayerTeam)
   elseif ( selectedattack == Thundara )
      set SV_Target = thundaratarget
   elseif ( selectedattack == Electrocute )
      set SV_Target = electrocutetarget
   Attack( selectedattack )


Function Zaghnol_Counter
   if ( ( GetAttackCommandId == Skill ) && ( GetAttackId == What's That?! ) )
      return
   if ( !multithundaraflag && electrocuteflag && ( SV_FunctionEnemy[HP] < hplimitmultithundara ) )
      set multithundaraflag = TRUE
      if ( SV_FunctionEnemy[MP] >= 12 )
         set SV_Target = SV_PlayerTeam
         Attack( Thundara )


Function Zaghnol_CounterEx
   if ( GetAttackId == Electrocute )
      set SV_FunctionEnemy[ELEMENT_HALF] &= ~THUNDER
      set SV_FunctionEnemy[ELEMENT_ABSORB] |= THUNDER
      set electrocuteflag = TRUE


Other appearances[]

Final Fantasy Airborne Brigade[]

Zaghnol Brigade.png
Baknamy FFTA2.pngThis section about an enemy in Final Fantasy Airborne Brigade is empty or needs to be expanded. You can help the Final Fantasy Wiki by expanding it.


Final Fantasy Record Keeper[]

FFRK Ultimate++ Zaghnol FFIX.png
Baknamy FFTA2.pngThis section about an enemy in Final Fantasy Record Keeper is empty or needs to be expanded. You can help the Final Fantasy Wiki by expanding it.


Tetra Master[]

Tetra Master
Zaghnol
#005
Location: Treno


Gallery[]

Etymology[]

The Zaghnal is an Indian war hammer or axe.

Advertisement