can someone help me with my GB Shield Script?
It doesn't seem to be staying in the shielded state
it also seems that when I stab it makes link's tiles go blank
import "std.zh" // Item IDs const int I_GBSHIELD1 = 93; // The item with the gbshield script const int I_GBSHIELD1_MOD1 = 144; // The tile mod item for not shielding const int I_GBSHIELD1_MOD2 = 143; // The tile mod item for shielding const int I_GBSHIELD2 = 1; const int I_GBSHIELD2_MOD1 = 1; const int I_GBSHIELD2_MOD2 = 1; const int I_GBSHIELD3 = 1; const int I_GBSHIELD3_MOD1 = 1; const int I_GBSHIELD3_MOD2 = 1; const int SFX_GBSHIELD = 17; //Shield active SFX int shieldItem; //Shield item to give (set by item script, reset each frame) int shieldButton; //0 - A, 1 - B global script GBShield_Global { void run() { //Initializations bool shieldInput; bool shieldOn; while(true) { shieldInput = false; if (Link->PressA && HasShield(0)) shieldInput = true; if (Link->PressB && HasShield(1)) shieldInput = true; int eqA=GetEquipmentA(); int eqB=GetEquipmentB(); if (HasShield(0) || HasShield(1)) { //Give Shield if (eqA == I_GBSHIELD1 && Link->Item[I_GBSHIELD1] == false) Link->Item[I_GBSHIELD1]=true; //Switch Shield State if (shieldInput) { //Remove Idle Shield Item if ((eqA == I_GBSHIELD1 || eqB == I_GBSHIELD1) && Link->Item[I_GBSHIELD1_MOD1] == true) Link->Item[I_GBSHIELD1_MOD1]=false; else if ((eqA == I_GBSHIELD2 || eqB == I_GBSHIELD2) && Link->Item[I_GBSHIELD1_MOD1] == true) Link->Item[I_GBSHIELD2_MOD1]=false; else if ((eqA == I_GBSHIELD3 || eqB == I_GBSHIELD3) && Link->Item[I_GBSHIELD1_MOD1] == true) Link->Item[I_GBSHIELD3_MOD1]=false; //Give Active Shield Item if ((eqA == I_GBSHIELD1 || eqB == I_GBSHIELD1) && Link->Item[I_GBSHIELD1_MOD1] == false) Link->Item[I_GBSHIELD1_MOD2]=true; else if ((eqA == I_GBSHIELD2 || eqB == I_GBSHIELD2) && Link->Item[I_GBSHIELD1_MOD1] == false) Link->Item[I_GBSHIELD2_MOD2]=true; else if ((eqA == I_GBSHIELD3 || eqB == I_GBSHIELD3) && Link->Item[I_GBSHIELD1_MOD1] == false) Link->Item[I_GBSHIELD3_MOD2]=true; //Set shield to on and play sound if (!shieldOn)Game->PlaySound(SFX_GBSHIELD); //Play the sound shieldOn=true; //Set shield state to off } else if(!shieldInput) { //Give Idle Shield Item if ((eqA == I_GBSHIELD1 || eqB == I_GBSHIELD1) && Link->Item[I_GBSHIELD1_MOD1] == false) Link->Item[I_GBSHIELD1_MOD1]=true; else if ((eqA == I_GBSHIELD2 || eqB == I_GBSHIELD2) && Link->Item[I_GBSHIELD2_MOD1] == false) Link->Item[I_GBSHIELD2_MOD1]=true; else if ((eqA == I_GBSHIELD3 || eqB == I_GBSHIELD3) && Link->Item[I_GBSHIELD3_MOD1] == false) Link->Item[I_GBSHIELD3_MOD1]=true; //Remove Active Shield Item if ((eqA == I_GBSHIELD1 || eqB == I_GBSHIELD1) && Link->Item[I_GBSHIELD1_MOD1] == true) Link->Item[I_GBSHIELD1_MOD2]=false; else if ((eqA == I_GBSHIELD2 || eqB == I_GBSHIELD2) && Link->Item[I_GBSHIELD2_MOD1] == true) Link->Item[I_GBSHIELD2_MOD2]=false; else if ((eqA == I_GBSHIELD3 || eqB == I_GBSHIELD3) && Link->Item[I_GBSHIELD3_MOD1] == true) Link->Item[I_GBSHIELD3_MOD2]=false; //Set shield to on and play sound if (shieldOn) Game->PlaySound(SFX_GBSHIELD); //Play the sound shieldOn=false; //Set shield state to off } } else { //Take Shield if (Link->Item[shieldItem]==true) Link->Item[shieldItem]=false; //Remove the shield //Remove Idle Shield Item if ((eqA == I_GBSHIELD1 || eqB == I_GBSHIELD1) && Link->Item[I_GBSHIELD1_MOD1] == true) Link->Item[I_GBSHIELD1_MOD1]=false; else if ((eqA == I_GBSHIELD2 || eqB == I_GBSHIELD2) && Link->Item[I_GBSHIELD2_MOD1] == true) Link->Item[I_GBSHIELD2_MOD1]=false; else if ((eqA == I_GBSHIELD3 || eqB == I_GBSHIELD3) && Link->Item[I_GBSHIELD3_MOD1] == true) Link->Item[I_GBSHIELD3_MOD1]=false; //Remove Active Shield Item if ((eqA == I_GBSHIELD1 || eqB == I_GBSHIELD1) && Link->Item[I_GBSHIELD1_MOD2] == true) Link->Item[I_GBSHIELD1_MOD2]=false; else if ((eqA == I_GBSHIELD2 || eqB == I_GBSHIELD2) && Link->Item[I_GBSHIELD2_MOD2] == true) Link->Item[I_GBSHIELD2_MOD2]=false; else if ((eqA == I_GBSHIELD3 || eqB == I_GBSHIELD3) && Link->Item[I_GBSHIELD3_MOD2] == true) Link->Item[I_GBSHIELD3_MOD2]=false; } Waitframe(); //Needed at bottom of while(true) loop } } }
ahh I fixed it as soon as posting this I just had to check of input not press and make sure I am only running it when link is idle or walking