//:://///////////////////////////////////////////// //:: Bard Scroll //:: it_bardscroll //:: Copyright (c) 2003 Bioware Corp. //::////////////////////////////////////////////// /* */ //::////////////////////////////////////////////// //:: Created By: Georg Zoeller //:: Created On: 2003-09-10 //::////////////////////////////////////////////// #include "x2_inc_switches" string DescribeHelpSong(int nSong) { string sResult= "Inspire Ally"; switch(nSong) { case 0: sResult="Inspire Ally"; break; case 1: sResult="Sharp Note - Pierce/Slashing become Keen"; break; case 2: sResult="Crescendo - Attack Increase"; break; case 3: sResult="Allegro - Movement Speed Increase"; break; case 4: sResult="Hymn of Praise - AC Bonus vs. Evil"; break; case 5: sResult="Infernal Threnody - AC Bonus vs. Good"; break; case 6: sResult="Song of Fury - Induce Rage in Allies"; break; case 7: sResult="Burning Bravura - Fire Damage Bonus"; break; case 8: sResult="Icy Ayre - Cold Damage Bonus"; break; case 9: sResult="Lyrical Lightning - Electrical Damage Bonus"; break; case 10: sResult="Corrosive Chorus - Acid Damage Bonus"; break; case 11: sResult="Sonorous Sequence - Sonic Damage Bonus"; break; case 12: sResult=""; break; //No Song case 13: sResult="Absonant Echos - Immunity vs. Sonic"; break; case 14: sResult="Heat of Harmony - Immunity vs. Fire"; break; case 15: sResult="Temperate Concord - Immunity vs. Cold"; break; case 16: sResult="Insulating Aria - Immunity vs. Electricity"; break; case 17: sResult="Bravura of Bases - Immunity vs. Acid"; break; case 18: sResult="Celestial Concerto - Regenerate Health"; break; case 19: sResult="Bombastic Brawl - Bludge gain Massive Crit/Gauntlets gain Damage"; break; } return sResult; } string DescribeCurseSong(int nSong) { string sResult = "Curse Song"; switch(nSong) { case 0: sResult="Curse Song"; break; case 1: sResult="Revealing Melody - Reduce Stealth"; break; case 2: sResult="Fortissimo - Weaken vs. Sonic"; break; case 3: sResult="Jarring Tune - Spell Interrupt"; break; case 4: sResult="Discordant Air - Enhancement Penalty"; break; case 5: sResult="Insidious Rhythm - Spell Failure"; break; case 6: sResult="Unceremonius Rhapsody - Sonic Damage"; break; case 7: sResult="Calumny - Blacken Reputation"; break; case 8: sResult="Immolating Libretto - Weaken vs. Fire"; break; case 9: sResult="Freezing Ayre - Weaken vs. Cold"; break; case 10: sResult="Cantata of Conduction - Weaken vs. Electricity"; break; case 11: sResult="Stinging Lament - Weaken vs. Acid"; break; case 12: sResult="Psalm of Dawn - Weaken vs. Divine"; break; case 13: sResult="Fouling Chant - Weaken vs. Negative"; break; case 14: sResult="Dissonant Dirge - Reduce Spell Resist"; break; case 15: sResult="Insipid Oration - Reduce Turn Resist"; break; case 16: sResult="Animal Anthem - Polymorph Animals"; break; } return sResult; } void main() { int nEvent =GetUserDefinedItemEventNumber(); if (nEvent == X2_ITEM_EVENT_ACTIVATE) { object oPC = GetItemActivator(); object oItem = GetItemActivated(); string sName = GetName(oItem); if(sName=="Verses of the Goddess") //All Help Songs { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==19) nCycle = 0; else if(nCycle==12) nCycle = 13; else nCycle++; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName=="Dissenting Voices") //All Curse Songs { int nCycle = GetLocalInt(oPC, "CURSESONG"); if(nCycle==16) nCycle = 0; else nCycle++; SetLocalInt(oPC, "CURSESONG", nCycle); SendMessageToPC(oPC, DescribeCurseSong(nCycle)); return; } else if(sName=="Bard Song: Sharp Note") //Sharp Note Toggle { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==1) nCycle=0; else nCycle=1; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName=="Bard Song: Celia's Crescendo") //Crescendo Toggle { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==2) nCycle=0; else nCycle=2; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName=="Bard Song: Allegro") //Allegro Toggle { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==3) nCycle=0; else nCycle=3; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName=="Bard Song: Hymn of Praise") //Hymn of Praise Toggle { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==4) nCycle=0; else nCycle=4; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName=="Bard Song: Infernal Threnody") //Infernal Threnody Toggle { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==5) nCycle=0; else nCycle=5; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName=="Bard Song: Song of Fury") //Song of Fury Toggle { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==6) nCycle=0; else nCycle=6; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName=="Bard Song: Bann's Burning Bravura") //Burning Bravura Toggle { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==7) nCycle=0; else nCycle=7; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName=="Bard Song: Ilia's Icy Ayre") //Icy Ayre Toggle { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==8) nCycle=0; else nCycle=8; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName=="Bard Song: Lupin's Lyrical Lightning") //Lyrical Lightning Toggle { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==9) nCycle=0; else nCycle=9; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName=="Bard Song: Carlin's Corrosive Chorus") //Corrosive Chorus Toggle { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==10) nCycle=0; else nCycle=10; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName=="Bard Song: Celine's Sonorous Sequence") //Sonorous Sequence Toggle { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==11) nCycle=0; else nCycle=11; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName==" ") //No Song --------------- { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==12) nCycle=0; else nCycle=12; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName=="Bard Song: Alicia's Absonant Echo") //Absonant Echos Toggle { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==13) nCycle=0; else nCycle=13; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName=="Bard Song: Kilana's Heat of Harmony") //Heat of Harmony Toggle { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==14) nCycle=0; else nCycle=14; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName=="Bard Song: Towal's Temperate Concord") //Temperate Concord Toggle { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==15) nCycle=0; else nCycle=15; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName=="Bard Song: Liam's Insulating Aria") //Insulating Aria Toggle { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==16) nCycle=0; else nCycle=16; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName=="Bard Song: Bravura of Bases") //Bravura of Bases Toggle { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==17) nCycle=0; else nCycle=17; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName=="Bard Song: Celestial Concerto") //Celestial Concerto Toggle { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==18) nCycle=0; else nCycle=18; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } else if(sName=="Bard Song: Bruno's Bombastic Brawl") //Bombastic Brawl Toggle { int nCycle = GetLocalInt(oPC, "HELPSONG"); if(nCycle==19) nCycle=0; else nCycle=19; SetLocalInt(oPC, "HELPSONG", nCycle); SendMessageToPC(oPC, DescribeHelpSong(nCycle)); return; } //:: Curse Songs else if(sName=="Curse Song: Revealing Melody") //Revealing Melody Toggle { int nCycle = GetLocalInt(oPC, "CURSESONG"); if(nCycle==1) nCycle=0; else nCycle=1; SetLocalInt(oPC, "CURSESONG", nCycle); SendMessageToPC(oPC, DescribeCurseSong(nCycle)); return; } else if(sName=="Curse Song: Fortissimo") //Fortissimo Toggle { int nCycle = GetLocalInt(oPC, "CURSESONG"); if(nCycle==2) nCycle=0; else nCycle=2; SetLocalInt(oPC, "CURSESONG", nCycle); SendMessageToPC(oPC, DescribeCurseSong(nCycle)); return; } else if(sName=="Curse Song: Jarring Tune") // Toggle { int nCycle = GetLocalInt(oPC, "CURSESONG"); if(nCycle==3) nCycle=0; else nCycle=3; SetLocalInt(oPC, "CURSESONG", nCycle); SendMessageToPC(oPC, DescribeCurseSong(nCycle)); return; } else if(sName=="Curse Song: Discordant Air") // Toggle { int nCycle = GetLocalInt(oPC, "CURSESONG"); if(nCycle==4) nCycle=0; else nCycle=4; SetLocalInt(oPC, "CURSESONG", nCycle); SendMessageToPC(oPC, DescribeCurseSong(nCycle)); return; } else if(sName=="Curse Song: Insidious Rhythm") // Toggle { int nCycle = GetLocalInt(oPC, "CURSESONG"); if(nCycle==5) nCycle=0; else nCycle=5; SetLocalInt(oPC, "CURSESONG", nCycle); SendMessageToPC(oPC, DescribeCurseSong(nCycle)); return; } else if(sName=="Curse Song: Unceremonius Rhapsody") // Toggle { int nCycle = GetLocalInt(oPC, "CURSESONG"); if(nCycle==6) nCycle=0; else nCycle=6; SetLocalInt(oPC, "CURSESONG", nCycle); SendMessageToPC(oPC, DescribeCurseSong(nCycle)); return; } else if(sName=="Curse Song: Calumny") // Toggle { int nCycle = GetLocalInt(oPC, "CURSESONG"); if(nCycle==7) nCycle=0; else nCycle=7; SetLocalInt(oPC, "CURSESONG", nCycle); SendMessageToPC(oPC, DescribeCurseSong(nCycle)); return; } else if(sName=="Curse Song: Immolating Libretto") // Toggle { int nCycle = GetLocalInt(oPC, "CURSESONG"); if(nCycle==8) nCycle=0; else nCycle=8; SetLocalInt(oPC, "CURSESONG", nCycle); SendMessageToPC(oPC, DescribeCurseSong(nCycle)); return; } else if(sName=="Curse Song: Freezing Ayre") // Toggle { int nCycle = GetLocalInt(oPC, "CURSESONG"); if(nCycle==9) nCycle=0; else nCycle=9; SetLocalInt(oPC, "CURSESONG", nCycle); SendMessageToPC(oPC, DescribeCurseSong(nCycle)); return; } else if(sName=="Curse Song: Cantata of Conduction") // Toggle { int nCycle = GetLocalInt(oPC, "CURSESONG"); if(nCycle==10) nCycle=0; else nCycle=10; SetLocalInt(oPC, "CURSESONG", nCycle); SendMessageToPC(oPC, DescribeCurseSong(nCycle)); return; } else if(sName=="Curse Song: Stinging Lament") // Toggle { int nCycle = GetLocalInt(oPC, "CURSESONG"); if(nCycle==11) nCycle=0; else nCycle=11; SetLocalInt(oPC, "CURSESONG", nCycle); SendMessageToPC(oPC, DescribeCurseSong(nCycle)); return; } else if(sName=="Curse Song: Psalm of Dawn") // Toggle { int nCycle = GetLocalInt(oPC, "CURSESONG"); if(nCycle==12) nCycle=0; else nCycle=12; SetLocalInt(oPC, "CURSESONG", nCycle); SendMessageToPC(oPC, DescribeCurseSong(nCycle)); return; } else if(sName=="Curse Song: Fouling Chant") // Toggle { int nCycle = GetLocalInt(oPC, "CURSESONG"); if(nCycle==13) nCycle=0; else nCycle=13; SetLocalInt(oPC, "CURSESONG", nCycle); SendMessageToPC(oPC, DescribeCurseSong(nCycle)); return; } else if(sName=="Curse Song: Dissonant Dirge") // Toggle { int nCycle = GetLocalInt(oPC, "CURSESONG"); if(nCycle==14) nCycle=0; else nCycle=14; SetLocalInt(oPC, "CURSESONG", nCycle); SendMessageToPC(oPC, DescribeCurseSong(nCycle)); return; } else if(sName=="Curse Song: Igor's Insipid Oration") // Toggle { int nCycle = GetLocalInt(oPC, "CURSESONG"); if(nCycle==15) nCycle=0; else nCycle=15; SetLocalInt(oPC, "CURSESONG", nCycle); SendMessageToPC(oPC, DescribeCurseSong(nCycle)); return; } else if(sName=="Curse Song: Argot's Animal Anthem") // Toggle { int nCycle = GetLocalInt(oPC, "CURSESONG"); if(nCycle==16) nCycle=0; else nCycle=16; SetLocalInt(oPC, "CURSESONG", nCycle); SendMessageToPC(oPC, DescribeCurseSong(nCycle)); return; } } }