One thing I would like to see in this script, if you can pull it off, is to set it up with an option to have this enemy invisible, if the cross/amulet == false.
By invisible, I mean really invisible. Not the invisibility with a shadow, or hazy form; but using transparent combos.
I tried to create a generic enemy script, that would use an invisible tile if Link doesn't have the amulet, and uses a specific set of tiles if he does have it, but I had no luck. I ended up with moving glitches.
In fact, using any alternate tiles, to change the appearance of an enemy if a global variable, or boolean is other than X, would be fantastic. Think of it as an illusion, that cloaks the enemy appearance by selecting the sprite of a different enemy, unless Link has something to reveal true forms.
I have some very creative uses for this on ghosted enemies.
Here is the script.
import "std.zh" // FFC script that renders an enemy invisible even to Lens of Truth. // // D0 - NPC slot in enemy list // D1 - ID of item that renders monster visible const int INVISITILE = 300; // Sets blank tiles chunk for invisible enemies. // I use tiles directly underneath Ganon`s ones. ffc script TotallyInvisibleEnemy{ void run (int npcslot, int revealitem){ Waitframes(4); // Needed for ZC engine to initialize enemies. npc invisible = Screen->LoadNPC(npcslot); // Assign pointer to desired enemy. int origtile = invisible->OriginalTile; // Back up his original tiles position. while (invisible->isValid()){ // If enemy is dead - script ends as well. if (!Link->Item[revealitem]) invisible->OriginalTile=INVISITILE; // Render enemy invisible. else invisible->OriginalTile=origtile; // Restore original tiles if Link finds or already has the amulet. Waitframe(); // Crashing ZC is always not good. } } }