////////////////////////////// /// GENERAL POTIONS SCRIPT /// //////////////////////////////////////////////////////////////////////////////////////////////////// /// By: ZoriaRPG - v1.1 - Updated 29th April 2014 /// //////////////////////////////////////////////////////////////////////////////////////////////////// /// This ITEM SCRIPT is used to create a variety of portion types, using a series of flags ///***new settings *** //D0 : Set to 1 if item is to restore FULL HP, otherwise, set to 0. New D0: Flag if potion restores FULL HP, MP, or both. 0 = none, 1 = HP, 2 = MP, 3 = both. New D1 //D2 : Set to a number greater than 0 is D0 is set to 0, to set a PRECISE AMOUNT of HP to restore New D2 //D3 : Set to a number greater than 0 is D1 is set to 0, to set a PRECISE AMOUNT of MP to restore New D3 //D7 : Set flag for potion checks - checks if health & magic are already full. // D3 Flags: 0 = check both, 1 = check only HP, 2 = check only MP, 4 = neither, nor prompt, 3 do not chedk, always prompt. New D4, set to string to play for Error message. New D5 //D4 : Set to SFX to play when using item: Use a number from Quest->Audio->SFX Data New D6 //D5 : Set to SFX to play for error sound (if HP/MP is already full, to prevent wasting item - from Quest>Audio->SFX Data New D7 //D6 : Set to item number of this item. item script Potions { //void run(int MaxRefillLife, int MaxRefillMagic, int hp, int mp, int POTION_SFX, int ERROR_SFX, int itemNumber, int HPMP_Flag) { void run(int FullRefillType, int hp, int mp, int HPMP_Flag, int ERROR_STRING, int POTION_SFX, int ERROR_SFX, int itemNumber) { int MP_Max = Game->MCounter[CR_MAGIC]; int HP_Max = Game->MCounter[CR_LIFE]; if ( HPMP_Flag == 0 ) { //Check if HP & MP are full. if ( FullRefillType == 3 && Link->MP < Link->MaxMP && Link->HP < Link->MaxHP ){ Link->HP += HP_Max; Link->MP += MP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 2 && hp == 0 && Link->MP < Link->MaxMP ){ Link->MP += MP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 2 && hp > 0 && Link->MP < Link->MaxMP && Link->HP < Link->MaxHP ){ Link->MP += MP_Max; Link->HP += hp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 1 && mp == 0 && Link->HP < Link->MaxHP ){ Link->HP += HP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 1 && mp > 0 && Link->HP < Link->MaxHP && Link->MP < Link->MaxMP ){ Link->HP += HP_Max; Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } if ( FullRefillType == 0 && hp > 0 && mp > 0 && Link->MP < Link->MaxMP && Link->HP < Link->MaxHP ){ Link->HP += hp; Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 0 && hp > 0 && Link->HP < Link->MaxHP ){ Link->HP += hp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 0 && mp > 0 && Link->MP < Link->MaxMP ){ Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else { Game->PlaySound(ERROR_SFX); Game->PlayString[ERROR_STRING]; if PressA(){ if ( FullRefillType == 3 ){ Link->HP += HP_Max; Link->MP += MP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 2 && hp == 0 ){ Link->MP += MP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 2 && hp > 0 ){ Link->MP += MP_Max; Link->HP += hp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 1 && mp == 0 ){ Link->HP += HP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 1 && mp > 0 ){ Link->HP += HP_Max; Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } if ( FullRefillType == 0 && hp > 0 && mp > 0 ){ Link->HP += hp; Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 0 && hp > 0 ){ Link->HP += hp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 0 && mp > 0 ){ Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } } else if PressB(){ return; } } } else if ( HPMP_Flag == 1 ) { //Check only if HP is full. if ( FullRefillType == 3 && Link->HP < Link->MaxHP ){ Link->HP += HP_Max; Link->MP += MP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 2 && hp == 0 ){ Link->MP += MP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 2 && hp > 0 && Link->HP < Link->MaxHP ){ Link->MP += MP_Max; Link->HP += hp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 1 && mp == 0 && Link->HP < Link->MaxHP ){ Link->HP += HP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 1 && mp > 0 && Link->HP < Link->MaxHP ){ Link->HP += HP_Max; Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } if ( FullRefillType == 0 && hp > 0 && mp > 0 && Link->HP < Link->MaxHP ){ Link->HP += hp; Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 0 && hp > 0 && Link->HP < Link->MaxHP ){ Link->HP += hp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 0 && mp > 0 ){ Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else { Game->PlaySound(ERROR_SFX); Game->PlayString[ERROR_STRING]; if PressA(){ if ( FullRefillType == 3 ){ Link->HP += HP_Max; Link->MP += MP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 2 && hp == 0 ){ Link->MP += MP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 2 && hp > 0 ){ Link->MP += MP_Max; Link->HP += hp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 1 && mp == 0 ){ Link->HP += HP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 1 && mp > 0 ){ Link->HP += HP_Max; Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } if ( FullRefillType == 0 && hp > 0 && mp > 0 ){ Link->HP += hp; Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 0 && hp > 0 ){ Link->HP += hp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 0 && mp > 0 ){ Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } } else if PressB(){ return; } } } else if ( HPMP_Flag == 2 ) { //Check only if MP is full. if ( FullRefillType == 3 && Link->MP < Link->MaxMP ){ Link->HP += HP_Max; Link->MP += MP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 2 && hp == 0 && Link->MP < Link->MaxMP ){ Link->MP += MP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 2 && hp > 0 && Link->MP < Link->MaxMP ){ Link->MP += MP_Max; Link->HP += hp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 1 && mp == 0 ){ Link->HP += HP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 1 && mp > 0 && Link->MP < Link->MaxMP ){ Link->HP += HP_Max; Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } if ( FullRefillType == 0 && hp > 0 && mp > 0 && Link->MP < Link->MaxMP ){ Link->HP += hp; Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 0 && hp > 0 ){ Link->HP += hp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 0 && mp > 0 && Link->MP < Link->MaxMP ){ Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else { Game->PlaySound(ERROR_SFX); Game->PlayString[ERROR_STRING]; if PressA(){ if ( FullRefillType == 3 ){ Link->HP += HP_Max; Link->MP += MP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 2 && hp == 0 ){ Link->MP += MP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 2 && hp > 0 ){ Link->MP += MP_Max; Link->HP += hp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 1 && mp == 0 ){ Link->HP += HP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 1 && mp > 0 ){ Link->HP += HP_Max; Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } if ( FullRefillType == 0 && hp > 0 && mp > 0 ){ Link->HP += hp; Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 0 && hp > 0 ){ Link->HP += hp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 0 && mp > 0 ){ Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } } else if PressB(){ return; } } } else if ( HPMP_Flag == 3 ) { //Use even if HP & MP are full. if ( FullRefillType == 3 ){ Link->HP += HP_Max; Link->MP += MP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 2 && hp == 0 ){ Link->MP += MP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 2 && hp > 0 ){ Link->MP += MP_Max; Link->HP += hp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 1 && mp == 0 ){ Link->HP += HP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 1 && mp > 0 ){ Link->HP += HP_Max; Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } if ( FullRefillType == 0 && hp > 0 && mp > 0 ){ Link->HP += hp; Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 0 && hp > 0 ){ Link->HP += hp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 0 && mp > 0 ){ Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else { Game->PlaySound(ERROR_SFX); Game->PlayString[ERROR_STRING]; if PressA(){ if ( FullRefillType == 3 ){ Link->HP += HP_Max; Link->MP += MP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 2 && hp == 0 ){ Link->MP += MP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 2 && hp > 0 ){ Link->MP += MP_Max; Link->HP += hp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 1 && mp == 0 ){ Link->HP += HP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 1 && mp > 0 ){ Link->HP += HP_Max; Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } if ( FullRefillType == 0 && hp > 0 && mp > 0 ){ Link->HP += hp; Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 0 && hp > 0 ){ Link->HP += hp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 0 && mp > 0 ){ Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } } else if PressB(){ return; } } } else if ( HPMP_Flag == 4 ) { //Use this flag to always prompt the player with an 'Are you sure?' message, with A for yes, and B for no. Game->PlaySound(ERROR_SFX); Game->PlayString[ERROR_STRING]; if PressA(){ if ( FullRefillType == 3 ){ Link->HP += HP_Max; Link->MP += MP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 2 && hp == 0 ){ Link->MP += MP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 2 && hp > 0 ){ Link->MP += MP_Max; Link->HP += hp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 1 && mp == 0 ){ Link->HP += HP_Max; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 1 && mp > 0 ){ Link->HP += HP_Max; Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } if ( FullRefillType == 0 && hp > 0 && mp > 0 ){ Link->HP += hp; Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 0 && hp > 0 ){ Link->HP += hp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } else if ( FullRefillType == 0 && mp > 0 ){ Link->MP += mp; Game->PlaySound(POTION_SFX); Link->Item[itemNumber] = false; } } else if PressB(){ return; } } } }