Oi, did I miss something? Did you mean to place that in the attack ring thread?
Pickup Script: If you want to automatically give items when the player gets all three pieces, you can create a global command and assign them via that, along with the cutscene and anything else. You can place the command in your while(true) loop, and as soon as the player has a counter >= 3, the script will run from the command and give the items; or just hard-code the items into your global script to give when all three (and I assume you have only three) pieces are obtained, , and also running special commands to increase abilities, or give special powers, or even run your cutscene, like this,:
global script Triforce{ void run(){ InitializeGhostZHData(); int fastWalkTimer; int lastScreen = Game->GetCurDMapScreen(); int lastDMap = Game->GetCurDMap(); while(true) { Game->Counter[CR_SCRIPT2] = Link->HP; Game->Counter[CR_SCRIPT3] = Link->MP; Game->Counter[CR_SCRIPT4] = Link->MaxHP; Game->Counter[CR_SCRIPT5] = Link->MaxMP; UpdateEWeapons(); GiveBundle; CleanUpGhostFFCs(); // Only needed if __GH_USE_DRAWCOMBO is 0 Waitdraw(); AutoGhost(); DrawGhostFFCs(); if (Game->Counter[CR_SCRIPT1] >=3); //If Link has the three Triforce Pieces { Link->Item[000] = true; //Set item number manually. Link->Item[000] = true; //Set item number manually. Link->Item[000] = true; //Set item number manually. Link->Item[000] = true; //Set item number manually. fastWalk; } else{ Link->Item[000] = false; //Set item number manually, prevebts glitch-owning of item. Link->Item[000] = false; //Set item number manually, prevebts glitch-owning of item. Link->Item[000] = false; //Set item number manually, prevebts glitch-owning of item. Link->Item[000] = false; //Set item number manually, prevebts glitch-owning of item. } Waitframe(); } } ////////////////////// /// BEGIN COMMANDS /// ////////////////////// //Makes Link walk faster in addition to normal walking speed void fastWalk ( int speed ){ //Up if( Link->InputUp && !Screen->isSolid(Link->X,Link->Y+6) //NW && !Screen->isSolid(Link->X+7,Link->Y+6) //N && !Screen->isSolid(Link->X+15,Link->Y+6) //NE ) Link->Y -= speed; //Down else if( Link->InputDown && !Screen->isSolid(Link->X,Link->Y+17) //SW && !Screen->isSolid(Link->X+7,Link->Y+17) //S && !Screen->isSolid(Link->X+15,Link->Y+17) //SE ) Link->Y += speed; //Left else if( Link->InputLeft && !Screen->isSolid(Link->X-2,Link->Y+8) //NW && !Screen->isSolid(Link->X-2,Link->Y+15) //SW ) Link->X -= speed; //Right else if( Link->InputRight && !Screen->isSolid(Link->X+17,Link->Y+8) //NE && !Screen->isSolid(Link->X+17,Link->Y+15) //SE ) Link->X += speed; } //////////////////// /// END COMMANDS /// ////////////////////