Here's what I'd do....
In the database, create an armor called "Ice Shield"
Create a State called, "Area Frozen"
Create a common event, "Shield of Ice"
@>Conditional Branch: [Hilda] is [Area Frozen] inflicted
@>Change Armor: [Ice Shield] + 1
@>Text: You made an Ice Shield
@>Change State: [Hilda], -[Area Frozen]
@>
: Else
@>Text: You need to freeze the area first
@>
: Branch End
@>
Create a skill called "Freeze Area"
Scope: The User
Occasion: Only from the Menu
State Change: + Area Frozen
Create a skill called "Shield of Ice"
Scope: The User
Occasion: Only from the Menu
Common Event: Shield of Ice
Now go to the Classes tab, and add the 2 new skills to the Mage class in the "Skills to Learn" section. (level 1 for testing, change to appropriate level for gameplay)
Optional: you could make another common event that gets called by the "Freeze Area" skill. It would start the timer, or save the current game time, and then loop until the timer expires, or a certain time has passed, then cancel the "Area Frozen" state. This would simulate the area only being able to remain frozen for X amount of time.
The reason I used a state, rather than just setting a switch with the "Freeze Area" skill is the state will be dependent on the skill succeeding. There is no way that I know of (without extra scripting) to tell from a common event if the skill was successful.
Anyway, give it a try.