Scriptname CSLetsTagQuestScript extends Quest Int Property TagInt Auto {Number used to total the number of tags}Actor Property TagActorTemp Auto {Used to hold the Actor for adding them to the Tag Faction}Actor Property PlaceHolderActor AutoFaction Property CSTagFaction Auto {The Name of the Faction with ranks from 1 to 10};---Alias ReferencesReferenceAlias Property Tag01Alias Auto ReferenceAlias Property Tag02Alias Auto ReferenceAlias Property Tag03Alias Auto ReferenceAlias Property Tag04Alias Auto ReferenceAlias Property Tag05Alias Auto ReferenceAlias Property Tag06Alias Auto ReferenceAlias Property Tag07Alias Auto ReferenceAlias Property Tag08Alias Auto ReferenceAlias Property Tag09Alias Auto ReferenceAlias Property Tag10Alias Auto ReferenceAlias Property TagPlaceHolder Auto ;----- Used to check which slots are free or notInt Property Slot1 AutoInt Property Slot2 AutoInt Property Slot3 AutoInt Property Slot4 AutoInt Property Slot5 AutoInt Property Slot6 AutoInt Property Slot7 AutoInt Property Slot8 AutoInt Property Slot9 AutoInt Property Slot10 AutoInt Property iDoOnce AutoInt Property iRemSlot AutoInt Property iStartup AutoQuest Property rTagQuest Auto SPELL Property CSRemoveTagSpell Auto GlobalVariable Property CSSlot1GV Auto GlobalVariable Property CSSlot2GV Auto GlobalVariable Property CSSlot3GV Auto GlobalVariable Property CSSlot4GV Auto GlobalVariable Property CSSlot5GV Auto GlobalVariable Property CSSlot6GV Auto GlobalVariable Property CSSlot7GV Auto GlobalVariable Property CSSlot8GV Auto GlobalVariable Property CSSlot9GV Auto GlobalVariable Property CSSlot10GV Auto GlobalVariable Property gvTotalTag AutoMessage Property MessageA Auto Message Property MessageB Auto ;==================================================================================; Give the player a lesser power (Used as an optional way to remove tags once placed);============================Event OnInit() if !(Game.GetPlayer().HasSpell (CSRemoveTagSpell)) (Game.GetPlayer().AddSpell (CSRemoveTagSpell)) endif EndEvent;==================================================================================;===============================; Used in dialogue when player talks to the person to Add a tag;; The various states are used to control which Slot is open or not. It assigns an actor to the first open slot.;===============================Function TagActor() actor TaggedActor = TagActorTemp as Actor rTagQuest.SetStage(10) if TagInt &--#60; 1 TagInt = 0 endifif Slot1 == 1 GotoState("Slot2State")else if iDoOnce == 0 GotoState("DoOnceState") else TaggedActor.SetFactionRank(CSTagFaction , 1) Tag01Alias.ForceRefTo(TaggedActor) rTagQuest.SetObjectiveDisplayed(10) rTagQuest.SetObjectiveDisplayed(11,0) rTagQuest.SetObjectiveDisplayed(200) Slot1 = 1 CSSlot1Gv.SetValueInt(1) TagInt += 1 gvTotalTag.SetValueInt(TagInt) endifendifEndFunctionState Slot2StateEvent OnBeginState() actor TaggedActor = TagActorTemp as Actorif Slot2 == 1 GotoState("Slot3State")else TaggedActor.SetFactionRank(CSTagFaction , 2) Tag02Alias.ForceRefTo(TaggedActor) rTagQuest.SetObjectiveDisplayed(20) rTagQuest.SetObjectiveDisplayed(21,0) Slot2 = 1 CSSlot2Gv.SetValueInt(1) TagInt += 1 gvTotalTag.SetValueInt(TagInt)endifEndEventEndStateState Slot3StateEvent OnBeginState() actor TaggedActor = TagActorTemp as Actorif Slot3 == 1 GotoState("Slot4State")else TaggedActor.SetFactionRank(CSTagFaction , 3) Tag03Alias.ForceRefTo(TaggedActor) rTagQuest.SetObjectiveDisplayed(30) rTagQuest.SetObjectiveDisplayed(31,0) Slot3 = 1 CSSlot3Gv.SetValueInt(1) TagInt += 1 gvTotalTag.SetValueInt(TagInt)endifEndEventEndStateState Slot4StateEvent OnBeginState() actor TaggedActor = TagActorTemp as Actorif Slot4 == 1 GotoState("Slot5State")else TaggedActor.SetFactionRank(CSTagFaction , 4) Tag04Alias.ForceRefTo(TaggedActor) rTagQuest.SetObjectiveDisplayed(40) rTagQuest.SetObjectiveDisplayed(41,0) Slot4 = 1 CSSlot4Gv.SetValueInt(1) TagInt += 1 gvTotalTag.SetValueInt(TagInt)endifEndEventEndStateState Slot5StateEvent OnBeginState() actor TaggedActor = TagActorTemp as Actorif Slot5 == 1 GotoState("Slot6State")else TaggedActor.SetFactionRank(CSTagFaction , 5) Tag05Alias.ForceRefTo(TaggedActor) rTagQuest.SetObjectiveDisplayed(50) rTagQuest.SetObjectiveDisplayed(51,0) Slot5 = 1 CSSlot5Gv.SetValueInt(1) TagInt += 1 gvTotalTag.SetValueInt(TagInt)endifEndEventEndStateState Slot6StateEvent OnBeginState() actor TaggedActor = TagActorTemp as Actorif Slot6 == 1 GotoState("Slot7State")else TaggedActor.SetFactionRank(CSTagFaction , 6) Tag06Alias.ForceRefTo(TaggedActor) rTagQuest.SetObjectiveDisplayed(60) rTagQuest.SetObjectiveDisplayed(61,0) Slot6 = 1 CSSlot6Gv.SetValueInt(1) TagInt += 1 gvTotalTag.SetValueInt(TagInt)endifEndEventEndStateState Slot7StateEvent OnBeginState() actor TaggedActor = TagActorTemp as Actorif Slot7 == 1 GotoState("Slot8State")else TaggedActor.SetFactionRank(CSTagFaction , 7) Tag07Alias.ForceRefTo(TaggedActor) rTagQuest.SetObjectiveDisplayed(70) rTagQuest.SetObjectiveDisplayed(71,0) Slot7 = 1 CSSlot7Gv.SetValueInt(1) TagInt += 1 gvTotalTag.SetValueInt(TagInt)endifEndEventEndStateState Slot8StateEvent OnBeginState() actor TaggedActor = TagActorTemp as Actorif Slot8 == 1 GotoState("Slot9State")else TaggedActor.SetFactionRank(CSTagFaction , 8) Tag08Alias.ForceRefTo(TaggedActor) rTagQuest.SetObjectiveDisplayed(80) rTagQuest.SetObjectiveDisplayed(81,0) Slot8 = 1 CSSlot8Gv.SetValueInt(1) TagInt += 1 gvTotalTag.SetValueInt(TagInt)endifEndEventEndStateState Slot9StateEvent OnBeginState() actor TaggedActor = TagActorTemp as Actorif Slot9 == 1 GotoState("Slot10State")else TaggedActor.SetFactionRank(CSTagFaction , 9) Tag09Alias.ForceRefTo(TaggedActor) rTagQuest.SetObjectiveDisplayed(90) rTagQuest.SetObjectiveDisplayed(91,0) Slot9 = 1 CSSlot9Gv.SetValueInt(1) TagInt += 1 gvTotalTag.SetValueInt(TagInt)endifEndEventEndStateState Slot10StateEvent OnBeginState() actor TaggedActor = TagActorTemp as Actorif Slot10 == 1 else TaggedActor.SetFactionRank(CSTagFaction , 10) Tag10Alias.ForceRefTo(TaggedActor) rTagQuest.SetObjectiveDisplayed(100) rTagQuest.SetObjectiveDisplayed(101,0) Slot10 = 1 CSSlot10Gv.SetValueInt(1) TagInt += 1 gvTotalTag.SetValueInt(TagInt)endifEndEventEndState;==================================================================================;===============================; Used in dialogue when player talks to the person to remove their tag;===============================Function RemoveTagActor() if TagInt &--#60; 1 TagInt = 0 endif Actor TaggedActor = TagActorTemp as Actor Int FactionRank = TaggedActor.GetFactionRank(CSTagFaction) as Int TaggedActor.RemoveFromFaction (CSTagFaction)if FactionRank == 1 TaggedActor = PlaceHolderActor as Actor Tag01Alias.ForceRefTo(TaggedActor) Slot1 = 0 CSSlot1Gv.SetValueInt(0) rTagQuest.SetObjectiveDisplayed(10,0) rTagQuest.SetObjectiveDisplayed(11) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)elseif FactionRank == 2 TaggedActor = PlaceHolderActor as Actor Tag02Alias.ForceRefTo(TaggedActor) Slot2 = 0 CSSlot2Gv.SetValueInt(0) rTagQuest.SetObjectiveDisplayed(20,0) rTagQuest.SetObjectiveDisplayed(21) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)elseif FactionRank == 3 TaggedActor = PlaceHolderActor as Actor Tag03Alias.ForceRefTo(TaggedActor) Slot3 = 0 CSSlot3Gv.SetValueInt(0) rTagQuest.SetObjectiveDisplayed(30,0) rTagQuest.SetObjectiveDisplayed(31) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)elseif FactionRank == 4 TaggedActor = PlaceHolderActor as Actor Tag04Alias.ForceRefTo(TaggedActor) Slot4 = 0 CSSlot4Gv.SetValueInt(0) rTagQuest.SetObjectiveDisplayed(40,0) rTagQuest.SetObjectiveDisplayed(41) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)elseif FactionRank == 5 TaggedActor = PlaceHolderActor as Actor Tag05Alias.ForceRefTo(TaggedActor) Slot5 = 0 CSSlot5Gv.SetValueInt(0) rTagQuest.SetObjectiveDisplayed(50,0) rTagQuest.SetObjectiveDisplayed(51) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)elseif FactionRank == 6 TaggedActor = PlaceHolderActor as Actor Tag06Alias.ForceRefTo(TaggedActor) Slot6 = 0 CSSlot6Gv.SetValueInt(0) rTagQuest.SetObjectiveDisplayed(60,0) rTagQuest.SetObjectiveDisplayed(61) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)elseif FactionRank == 7 TaggedActor = PlaceHolderActor as Actor Tag07Alias.ForceRefTo(TaggedActor) Slot7 = 0 CSSlot7Gv.SetValueInt(0) rTagQuest.SetObjectiveDisplayed(70,0) rTagQuest.SetObjectiveDisplayed(71) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)elseif FactionRank == 8 TaggedActor = PlaceHolderActor as Actor Tag08Alias.ForceRefTo(TaggedActor) Slot8 = 0 CSSlot8Gv.SetValueInt(0) rTagQuest.SetObjectiveDisplayed(80,0) rTagQuest.SetObjectiveDisplayed(81) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)elseif FactionRank == 9 TaggedActor = PlaceHolderActor as Actor Tag09Alias.ForceRefTo(TaggedActor) Slot9 = 0 CSSlot9Gv.SetValueInt(0) rTagQuest.SetObjectiveDisplayed(90,0) rTagQuest.SetObjectiveDisplayed(91) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)elseif FactionRank == 10 TaggedActor = PlaceHolderActor as Actor Tag10Alias.ForceRefTo(TaggedActor) Slot10 = 0 CSSlot10Gv.SetValueInt(0) rTagQuest.SetObjectiveDisplayed(100,0) rTagQuest.SetObjectiveDisplayed(101) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)endifEndFunction;==================================================================================;=========; Used in Script Effect Menu to Remove Tags;=========function MenuA() ;Page 1 iRemSlot = 0 int iNum = MessageA.show() if iNum == 0 ; Remove 1 iRemSlot = 1 RemoveMessageSlots() elseif iNum == 1 ; Remove 2 iRemSlot = 2 RemoveMessageSlots() elseif iNum == 2 ; Remove 3 iRemSlot = 3 RemoveMessageSlots() elseif iNum == 3 ; Remove 4 iRemSlot = 4 RemoveMessageSlots() elseif iNum == 4; Remove 5 iRemSlot = 5 RemoveMessageSlots() elseif iNum == 5 ; Next Page Utility.Wait(0.5) MenuB() elseif iNum == 6 ; Exit endifendFunctionFunction MenuB() ;Page 2 iRemSlot = 0 int iNum = MessageB.show() if iNum == 0 ; Remove 6 iRemSlot = 6 RemoveMessageSlots() elseif iNum == 1 ; Remove 7 iRemSlot = 7 RemoveMessageSlots() elseif iNum == 2 ; Remove 8 iRemSlot = 8 RemoveMessageSlots() elseif iNum == 3 ; Remove 9 iRemSlot = 9 RemoveMessageSlots() elseif iNum == 4 ; Remove 10 iRemSlot = 10 RemoveMessageSlots() elseif iNum == 5 ; Previous Page Utility.Wait(0.5) MenuA() elseif iNum == 6; Exit endifendFunctionFunction RemoveMessageSlots()if iRemSlot == 1 Actor TaggedActor = Tag01Alias.GetActorRef() as Actor TaggedActor.RemoveFromFaction (CSTagFaction) Slot1 = 0 CSSlot1Gv.SetValueInt(0) TaggedActor = PlaceHolderActor as Actor Tag01Alias.ForceRefTo(TaggedActor) rTagQuest.SetObjectiveDisplayed(10,0) rTagQuest.SetObjectiveDisplayed(11) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)elseif iRemSlot == 2 Actor TaggedActor = Tag02Alias.GetActorRef() as Actor TaggedActor.RemoveFromFaction (CSTagFaction) Slot2 = 0 CSSlot2Gv.SetValueInt(0) TaggedActor = PlaceHolderActor as Actor Tag02Alias.ForceRefTo(TaggedActor) rTagQuest.SetObjectiveDisplayed(20,0) rTagQuest.SetObjectiveDisplayed(21) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)elseif iRemSlot == 3 Actor TaggedActor = Tag03Alias.GetActorRef() as Actor TaggedActor.RemoveFromFaction (CSTagFaction) Slot3 = 0 CSSlot3Gv.SetValueInt(0) TaggedActor = PlaceHolderActor as Actor Tag03Alias.ForceRefTo(TaggedActor) rTagQuest.SetObjectiveDisplayed(30,0) rTagQuest.SetObjectiveDisplayed(31) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)elseif iRemSlot == 4 Actor TaggedActor = Tag04Alias.GetActorRef() as Actor TaggedActor.RemoveFromFaction (CSTagFaction) TaggedActor = PlaceHolderActor as Actor Tag04Alias.ForceRefTo(TaggedActor) Tag04Alias.Clear() Slot4 = 0 CSSlot4Gv.SetValueInt(0) rTagQuest.SetObjectiveDisplayed(40,0) rTagQuest.SetObjectiveDisplayed(41) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)elseif iRemSlot == 5 Actor TaggedActor = Tag05Alias.GetActorRef() as Actor TaggedActor.RemoveFromFaction (CSTagFaction) TaggedActor = PlaceHolderActor as Actor Tag05Alias.ForceRefTo(TaggedActor) Slot5 = 0 CSSlot5Gv.SetValueInt(0) rTagQuest.SetObjectiveDisplayed(50,0) rTagQuest.SetObjectiveDisplayed(51) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)elseif iRemSlot == 6 Actor TaggedActor = Tag06Alias.GetActorRef() as Actor TaggedActor.RemoveFromFaction (CSTagFaction) TaggedActor = PlaceHolderActor as Actor Tag06Alias.ForceRefTo(TaggedActor) Slot6 = 0 CSSlot6Gv.SetValueInt(0) rTagQuest.SetObjectiveDisplayed(60,0) rTagQuest.SetObjectiveDisplayed(61) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)elseif iRemSlot == 7 Actor TaggedActor = Tag07Alias.GetActorRef() as Actor TaggedActor.RemoveFromFaction (CSTagFaction) TaggedActor = PlaceHolderActor as Actor Tag07Alias.ForceRefTo(TaggedActor) Slot7 = 0 CSSlot7Gv.SetValueInt(0) rTagQuest.SetObjectiveDisplayed(70,0) rTagQuest.SetObjectiveDisplayed(71) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)elseif iRemSlot == 8 Actor TaggedActor = Tag08Alias.GetActorRef() as Actor TaggedActor.RemoveFromFaction (CSTagFaction) TaggedActor = PlaceHolderActor as Actor Tag08Alias.ForceRefTo(TaggedActor) Slot8 = 0 CSSlot8Gv.SetValueInt(0) rTagQuest.SetObjectiveDisplayed(80,0) rTagQuest.SetObjectiveDisplayed(81) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)elseif iRemSlot == 9 Actor TaggedActor = Tag09Alias.GetActorRef() as Actor TaggedActor.RemoveFromFaction (CSTagFaction) TaggedActor = PlaceHolderActor as Actor Tag09Alias.ForceRefTo(TaggedActor) Slot9 = 0 CSSlot9Gv.SetValueInt(0) rTagQuest.SetObjectiveDisplayed(90,0) rTagQuest.SetObjectiveDisplayed(91) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)elseif iRemSlot == 10 Actor TaggedActor = Tag10Alias.GetActorRef() as Actor TaggedActor.RemoveFromFaction (CSTagFaction) TaggedActor = PlaceHolderActor as Actor Tag10Alias.ForceRefTo(TaggedActor) Slot10 = 0 CSSlot10Gv.SetValueInt(0) rTagQuest.SetObjectiveDisplayed(100,0) rTagQuest.SetObjectiveDisplayed(101) TagInt -= 1 gvTotalTag.SetValueInt(TagInt)endif if TagInt &--#60; 1 TagInt = 0 gvTotalTag.SetValueInt(TagInt) endif Utility.Wait(0.5) if iRemSlot &--#60;= 5 MenuA() else MenuB() endifEndFunction;==================================================================================;==================; Do once startup for when the player tags a person for the first time;==================State DoOnceStateEvent OnBeginState() actor TaggedActor = TagActorTemp as Actor TaggedActor.SetFactionRank(CSTagFaction , 1) Tag01Alias.ForceRefTo(TaggedActor) TaggedActor = PlaceHolderActor as Actor Tag10Alias.ForceRefTo(TaggedActor) Tag09Alias.ForceRefTo(TaggedActor) Tag08Alias.ForceRefTo(TaggedActor) Tag07Alias.ForceRefTo(TaggedActor) Tag06Alias.ForceRefTo(TaggedActor) Tag05Alias.ForceRefTo(TaggedActor) Tag04Alias.ForceRefTo(TaggedActor) Tag03Alias.ForceRefTo(TaggedActor) Tag02Alias.ForceRefTo(TaggedActor) rTagQuest.SetObjectiveDisplayed(101) rTagQuest.SetObjectiveDisplayed(91) rTagQuest.SetObjectiveDisplayed(81) rTagQuest.SetObjectiveDisplayed(71) rTagQuest.SetObjectiveDisplayed(61) rTagQuest.SetObjectiveDisplayed(51) rTagQuest.SetObjectiveDisplayed(41) rTagQuest.SetObjectiveDisplayed(31) rTagQuest.SetObjectiveDisplayed(21) rTagQuest.SetObjectiveDisplayed(10) rTagQuest.SetObjectiveDisplayed(200) Slot1 = 1 CSSlot1Gv.SetValueInt(1) TagInt += 1 gvTotalTag.SetValueInt(TagInt) iDoOnce = 1EndEventEndState