adle Posted June 11, 2024 Posted June 11, 2024 Hi Folks, i need help with forcegreet packages in CK. Iam writing a scripts, where a queue is standing outside of a room, (7 People in total) and then the first one is approaching the player. Weirdly, my force greet package doesnt work. How It works: As soon as one Guy is finished, he should leave the queue and all other guys move one position forward. Which is why i had to make object references to make sure that the queue is also randomly filled. Now iam trying forced the Alias for the forcegreet to the first guy. Nothing happens. Since they are no actors, but object references, i had to set the actor as object ref. But still, nothing works. No ForceGreet, therefore no dialogue. any tips how to solve this issue? Spoiler ;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment ;NEXT FRAGMENT INDEX 22 Scriptname QF_pchsProstitutionQuest001_0A00AA0C Extends Quest Hidden ;BEGIN FRAGMENT Fragment_18 Function Fragment_18() ;BEGIN CODE pchsFindCustomer2() pchsFindCustomer3() pchsFindCustomer4() pchsFindCustomer5() pchsFindCustomer6() pchsFindCustomer7() (Customer20 as Actor).removeFromFaction(pchsProstitution2Faction) (Customer30 as Actor).removeFromFaction(pchsProstitution3Faction) (Customer40 as Actor).removeFromFaction(pchsProstitution4Faction) (Customer50 as Actor).removeFromFaction(pchsProstitution5Faction) (Customer60 as Actor).removeFromFaction(pchsProstitution6Faction) (Customer70 as Actor).removeFromFaction(pchsProstitution7Faction) (Customer20 as Actor).addToFaction(pchsProstitution1Faction) (Customer30 as Actor).addToFaction(pchsProstitution2Faction) (Customer40 as Actor).addToFaction(pchsProstitution3Faction) (Customer50 as Actor).addToFaction(pchsProstitution4Faction) (Customer60 as Actor).addToFaction(pchsProstitution5Faction) (Customer70 as Actor).addToFaction(pchsProstitution6Faction) pchscustomermarker2.clear() pchscustomermarker3.clear() pchscustomermarker4.clear() pchscustomermarker5.clear() pchscustomermarker6.clear() pchscustomermarker7.clear() pchscustomer1package.ForceRefTo(Customer20) pchscustomermarker2.ForceRefTo(Customer30) pchscustomermarker3.ForceRefTo(Customer40) pchscustomermarker4.ForceRefTo(Customer50) pchscustomermarker5.ForceRefTo(Customer60) pchscustomermarker6.ForceRefTo(Customer70) pchsProstitutionQuest001.reset() pchsProstitutionQuest001.setstage(30) If Game.GetPlayer().GetDistance(Customer30) > 5000 Game.GetPlayer().AddToFaction(pchsProstitutionFinishFaction) EndIf ;END CODE EndFunction ;END FRAGMENT ;BEGIN FRAGMENT Fragment_16 Function Fragment_16() ;BEGIN CODE pchsForcegreetRepeat() pchscustomer1package.clear() pchscustomerLeave00.ForceRefTo(Customer10) pchsProstitutionQuest001.setstage(40) ;END CODE EndFunction ;END FRAGMENT ;BEGIN FRAGMENT Fragment_2 Function Fragment_2() ;BEGIN CODE getcustomer() customer.moveto(XMarkerpchsqueue01) customer10 = customer pchscustomermarker2.ForceRefTo(customer10) (Customer10 as Actor).AddToFaction(pchsProstitution1Faction) utility.wait(0.1) getcustomer() customer.moveto(XMarkerpchsqueue02) customer20 = customer pchscustomermarker3.ForceRefTo(customer20) (Customer20 as Actor).AddToFaction(pchsProstitution2Faction) utility.wait(0.1) getcustomer() customer.moveto(XMarkerpchsqueue03) customer30 = customer pchscustomermarker4.ForceRefTo(customer30) (Customer30 as Actor).AddToFaction(pchsProstitution3Faction) utility.wait(0.1) getcustomer() customer.moveto(XMarkerpchsqueue04) customer40 = customer pchscustomermarker5.ForceRefTo(customer40) (Customer40 as Actor).AddToFaction(pchsProstitution4Faction) utility.wait(0.1) getcustomer() customer.moveto(XMarkerpchsqueue05) customer50 = customer pchscustomermarker6.ForceRefTo(customer50) (Customer50 as Actor).AddToFaction(pchsProstitution5Faction) utility.wait(0.1) getcustomer() customer.moveto(XMarkerpchsqueue06) customer60 = customer pchscustomermarker7.ForceRefTo(customer60) (Customer60 as Actor).AddToFaction(pchsProstitution6Faction) utility.wait(0.1) getcustomer() customer.moveto(XMarkerpchsqueue07) customer10 = customer pchscustomermarker8.ForceRefTo(customer70) (Customer70 as Actor).AddToFaction(pchsProstitution7Faction) utility.wait(0.1) ;END CODE EndFunction ;END FRAGMENT ;BEGIN FRAGMENT Fragment_11 Function Fragment_11() ;BEGIN CODE pchsForcegreetRepeat() pchscustomer1package.ForceRefTo(Customer10) pchsFatherAlias.ForceRefTo(FatherRef) ;END CODE EndFunction ;END FRAGMENT ;BEGIN FRAGMENT Fragment_20 Function Fragment_20() ;BEGIN CODE Utility.wait(10) customer1.disable() customer2.disable() customer3.disable() customer4.disable() customer5.disable() customer6.disable() customer7.disable() ;END CODE EndFunction ;END FRAGMENT ;END FRAGMENT CODE - Do not edit anything between this and the begin comment Function GetCustomer() Int CustomerNumber = Utility.RandomInt(1,7) IF CustomerNumber == 1 && Customer1A == true Customer1.enable() Customer = Customer1 Customer1A = false ElseIf CustomerNumber == 2 && Customer2A == true Customer2.enable() Customer = Customer2 Customer2A = false ElseIf CustomerNumber == 3 && Customer3A == true Customer3.enable() Customer = Customer3 Customer3A = false ElseIf CustomerNumber == 4 && Customer4A == true Customer4.enable() Customer = Customer4 Customer4A = false ElseIf CustomerNumber == 5 && Customer5A == true Customer5.enable() Customer = Customer5 Customer5A = false ElseIf CustomerNumber == 6 && Customer6A == true Customer6.enable() Customer = Customer6 Customer6A = false ElseIf CustomerNumber == 7 && Customer7A == true Customer7.enable() Customer = Customer7 Customer7A = false Else getcustomer() utility.wait(0.1) EndIf EndFunction Function pchsForcegreetRepeat() Customer10 = Game.FindRandomActorFromRef(XMarkerpchsqueue01, 5.0) If (customer10 as Actor).IsInFaction(pchsProstitution1Faction )==False Utility.wait(0.1) pchsForcegreetRepeat() EndIf EndFunction Function pchsFindCustomer2() Customer20 = Game.FindRandomActorFromRef(XMarkerpchsqueue02, 5.0) If (customer20 as Actor).IsInFaction(pchsProstitution2Faction )==False Utility.wait(0.1) pchsFindCustomer2() EndIf EndFunction Function pchsFindCustomer3() Customer30 = Game.FindRandomActorFromRef(XMarkerpchsqueue03, 5.0) If (customer30 as Actor).IsInFaction(pchsProstitution3Faction )==False Utility.wait(0.1) pchsFindCustomer3() EndIf EndFunction Function pchsFindCustomer4() Customer40 = Game.FindRandomActorFromRef(XMarkerpchsqueue04, 5.0) If (customer40 as Actor).IsInFaction(pchsProstitution4Faction )==False Utility.wait(0.1) pchsFindCustomer4() EndIf EndFunction Function pchsFindCustomer5() Customer50 = Game.FindRandomActorFromRef(XMarkerpchsqueue05, 5.0) If (customer50 as Actor).IsInFaction(pchsProstitution5Faction )==False Utility.wait(0.1) pchsFindCustomer5() EndIf EndFunction Function pchsFindCustomer6() Customer60 = Game.FindRandomActorFromRef(XMarkerpchsqueue06, 5.0) If (customer60 as Actor).IsInFaction(pchsProstitution6Faction )==False Utility.wait(0.1) pchsFindCustomer6() EndIf EndFunction Function pchsFindCustomer7() Customer70 = Game.FindRandomActorFromRef(XMarkerpchsqueue07, 5.0) If (customer70 as Actor).IsInFaction(pchsProstitution7Faction )==False Utility.wait(0.1) pchsFindCustomer7() EndIf EndFunction Function next() EndFunction Quest Property pchsProstitutionQuest001 Auto Quest Property pchsProstitutionDialogueQuest Auto Quest Property pchsProstitutionQuest Auto bool Property Customer1A = true Auto bool Property Customer2A = true Auto bool Property Customer3A = true Auto bool Property Customer4A = true Auto bool Property Customer5A = true Auto bool Property Customer6A = true Auto bool Property Customer7A = true Auto ObjectReference Property Customer Auto ObjectReference Property Customer1 Auto ObjectReference Property Customer2 Auto ObjectReference Property Customer3 Auto ObjectReference Property Customer4 Auto ObjectReference Property Customer5 Auto ObjectReference Property Customer6 Auto ObjectReference Property Customer7 Auto ObjectReference Property Customer10 Auto ObjectReference Property Customer20 Auto ObjectReference Property Customer30 Auto ObjectReference Property Customer40 Auto ObjectReference Property Customer50 Auto ObjectReference Property Customer60 Auto ObjectReference Property Customer70 Auto ObjectReference Property XMarkerpchsqueue01 Auto ObjectReference Property XMarkerpchsqueue02 Auto ObjectReference Property XMarkerpchsqueue03 Auto ObjectReference Property XMarkerpchsqueue04 Auto ObjectReference Property XMarkerpchsqueue05 Auto ObjectReference Property XMarkerpchsqueue06 Auto ObjectReference Property XMarkerpchsqueue07 Auto Faction Property pchsProstitution1Faction Auto Faction Property pchsProstitution2Faction Auto Faction Property pchsProstitution3Faction Auto Faction Property pchsProstitution4Faction Auto Faction Property pchsProstitution5Faction Auto Faction Property pchsProstitution6Faction Auto Faction Property pchsProstitution7Faction Auto Faction Property pchsProstitutionFinishFaction Auto ReferenceAlias Property pchscustomer1package Auto ReferenceAlias Property pchscustomermarker2 Auto ReferenceAlias Property pchscustomermarker3 Auto ReferenceAlias Property pchscustomermarker4 Auto ReferenceAlias Property pchscustomermarker5 Auto ReferenceAlias Property pchscustomermarker6 Auto ReferenceAlias Property pchscustomermarker7 Auto ReferenceAlias Property pchscustomermarker8 Auto ReferenceAlias Property pchsProstitutionGoodMorning Auto ReferenceAlias Property pchscustomerLeave00 Auto ReferenceAlias Property pchsFatherAlias Auto SexLabFramework Property SexLab Auto Actor Property PlayerRef Auto Actor Property FatherRef Auto ReferenceAlias Property pchsProstitutionCustomerApproach Auto
traison Posted June 11, 2024 Posted June 11, 2024 Stupid question perhaps but are you sure the forcegreet is not happening? I can't really think of a way to test it, which leads to the next question: did you generate the sequence file for your quest containing the dialogue?
MTB Posted June 11, 2024 Posted June 11, 2024 (edited) 7 hours ago, adle said: Hi Folks, i need help with forcegreet packages in CK. Iam writing a scripts, where a queue is standing outside of a room, (7 People in total) and then the first one is approaching the player. Weirdly, my force greet package doesnt work. How It works: As soon as one Guy is finished, he should leave the queue and all other guys move one position forward. Which is why i had to make object references to make sure that the queue is also randomly filled. Now iam trying forced the Alias for the forcegreet to the first guy. Nothing happens. Since they are no actors, but object references, i had to set the actor as object ref. But still, nothing works. No ForceGreet, therefore no dialogue. any tips how to solve this issue? Reveal hidden contents ;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment ;NEXT FRAGMENT INDEX 22 Scriptname QF_pchsProstitutionQuest001_0A00AA0C Extends Quest Hidden ;BEGIN FRAGMENT Fragment_18 Function Fragment_18() ;BEGIN CODE pchsFindCustomer2() pchsFindCustomer3() pchsFindCustomer4() pchsFindCustomer5() pchsFindCustomer6() pchsFindCustomer7() (Customer20 as Actor).removeFromFaction(pchsProstitution2Faction) (Customer30 as Actor).removeFromFaction(pchsProstitution3Faction) (Customer40 as Actor).removeFromFaction(pchsProstitution4Faction) (Customer50 as Actor).removeFromFaction(pchsProstitution5Faction) (Customer60 as Actor).removeFromFaction(pchsProstitution6Faction) (Customer70 as Actor).removeFromFaction(pchsProstitution7Faction) (Customer20 as Actor).addToFaction(pchsProstitution1Faction) (Customer30 as Actor).addToFaction(pchsProstitution2Faction) (Customer40 as Actor).addToFaction(pchsProstitution3Faction) (Customer50 as Actor).addToFaction(pchsProstitution4Faction) (Customer60 as Actor).addToFaction(pchsProstitution5Faction) (Customer70 as Actor).addToFaction(pchsProstitution6Faction) pchscustomermarker2.clear() pchscustomermarker3.clear() pchscustomermarker4.clear() pchscustomermarker5.clear() pchscustomermarker6.clear() pchscustomermarker7.clear() pchscustomer1package.ForceRefTo(Customer20) pchscustomermarker2.ForceRefTo(Customer30) pchscustomermarker3.ForceRefTo(Customer40) pchscustomermarker4.ForceRefTo(Customer50) pchscustomermarker5.ForceRefTo(Customer60) pchscustomermarker6.ForceRefTo(Customer70) pchsProstitutionQuest001.reset() pchsProstitutionQuest001.setstage(30) If Game.GetPlayer().GetDistance(Customer30) > 5000 Game.GetPlayer().AddToFaction(pchsProstitutionFinishFaction) EndIf ;END CODE EndFunction ;END FRAGMENT ;BEGIN FRAGMENT Fragment_16 Function Fragment_16() ;BEGIN CODE pchsForcegreetRepeat() pchscustomer1package.clear() pchscustomerLeave00.ForceRefTo(Customer10) pchsProstitutionQuest001.setstage(40) ;END CODE EndFunction ;END FRAGMENT ;BEGIN FRAGMENT Fragment_2 Function Fragment_2() ;BEGIN CODE getcustomer() customer.moveto(XMarkerpchsqueue01) customer10 = customer pchscustomermarker2.ForceRefTo(customer10) (Customer10 as Actor).AddToFaction(pchsProstitution1Faction) utility.wait(0.1) getcustomer() customer.moveto(XMarkerpchsqueue02) customer20 = customer pchscustomermarker3.ForceRefTo(customer20) (Customer20 as Actor).AddToFaction(pchsProstitution2Faction) utility.wait(0.1) getcustomer() customer.moveto(XMarkerpchsqueue03) customer30 = customer pchscustomermarker4.ForceRefTo(customer30) (Customer30 as Actor).AddToFaction(pchsProstitution3Faction) utility.wait(0.1) getcustomer() customer.moveto(XMarkerpchsqueue04) customer40 = customer pchscustomermarker5.ForceRefTo(customer40) (Customer40 as Actor).AddToFaction(pchsProstitution4Faction) utility.wait(0.1) getcustomer() customer.moveto(XMarkerpchsqueue05) customer50 = customer pchscustomermarker6.ForceRefTo(customer50) (Customer50 as Actor).AddToFaction(pchsProstitution5Faction) utility.wait(0.1) getcustomer() customer.moveto(XMarkerpchsqueue06) customer60 = customer pchscustomermarker7.ForceRefTo(customer60) (Customer60 as Actor).AddToFaction(pchsProstitution6Faction) utility.wait(0.1) getcustomer() customer.moveto(XMarkerpchsqueue07) customer10 = customer pchscustomermarker8.ForceRefTo(customer70) (Customer70 as Actor).AddToFaction(pchsProstitution7Faction) utility.wait(0.1) ;END CODE EndFunction ;END FRAGMENT ;BEGIN FRAGMENT Fragment_11 Function Fragment_11() ;BEGIN CODE pchsForcegreetRepeat() pchscustomer1package.ForceRefTo(Customer10) pchsFatherAlias.ForceRefTo(FatherRef) ;END CODE EndFunction ;END FRAGMENT ;BEGIN FRAGMENT Fragment_20 Function Fragment_20() ;BEGIN CODE Utility.wait(10) customer1.disable() customer2.disable() customer3.disable() customer4.disable() customer5.disable() customer6.disable() customer7.disable() ;END CODE EndFunction ;END FRAGMENT ;END FRAGMENT CODE - Do not edit anything between this and the begin comment Function GetCustomer() Int CustomerNumber = Utility.RandomInt(1,7) IF CustomerNumber == 1 && Customer1A == true Customer1.enable() Customer = Customer1 Customer1A = false ElseIf CustomerNumber == 2 && Customer2A == true Customer2.enable() Customer = Customer2 Customer2A = false ElseIf CustomerNumber == 3 && Customer3A == true Customer3.enable() Customer = Customer3 Customer3A = false ElseIf CustomerNumber == 4 && Customer4A == true Customer4.enable() Customer = Customer4 Customer4A = false ElseIf CustomerNumber == 5 && Customer5A == true Customer5.enable() Customer = Customer5 Customer5A = false ElseIf CustomerNumber == 6 && Customer6A == true Customer6.enable() Customer = Customer6 Customer6A = false ElseIf CustomerNumber == 7 && Customer7A == true Customer7.enable() Customer = Customer7 Customer7A = false Else getcustomer() utility.wait(0.1) EndIf EndFunction Function pchsForcegreetRepeat() Customer10 = Game.FindRandomActorFromRef(XMarkerpchsqueue01, 5.0) If (customer10 as Actor).IsInFaction(pchsProstitution1Faction )==False Utility.wait(0.1) pchsForcegreetRepeat() EndIf EndFunction Function pchsFindCustomer2() Customer20 = Game.FindRandomActorFromRef(XMarkerpchsqueue02, 5.0) If (customer20 as Actor).IsInFaction(pchsProstitution2Faction )==False Utility.wait(0.1) pchsFindCustomer2() EndIf EndFunction Function pchsFindCustomer3() Customer30 = Game.FindRandomActorFromRef(XMarkerpchsqueue03, 5.0) If (customer30 as Actor).IsInFaction(pchsProstitution3Faction )==False Utility.wait(0.1) pchsFindCustomer3() EndIf EndFunction Function pchsFindCustomer4() Customer40 = Game.FindRandomActorFromRef(XMarkerpchsqueue04, 5.0) If (customer40 as Actor).IsInFaction(pchsProstitution4Faction )==False Utility.wait(0.1) pchsFindCustomer4() EndIf EndFunction Function pchsFindCustomer5() Customer50 = Game.FindRandomActorFromRef(XMarkerpchsqueue05, 5.0) If (customer50 as Actor).IsInFaction(pchsProstitution5Faction )==False Utility.wait(0.1) pchsFindCustomer5() EndIf EndFunction Function pchsFindCustomer6() Customer60 = Game.FindRandomActorFromRef(XMarkerpchsqueue06, 5.0) If (customer60 as Actor).IsInFaction(pchsProstitution6Faction )==False Utility.wait(0.1) pchsFindCustomer6() EndIf EndFunction Function pchsFindCustomer7() Customer70 = Game.FindRandomActorFromRef(XMarkerpchsqueue07, 5.0) If (customer70 as Actor).IsInFaction(pchsProstitution7Faction )==False Utility.wait(0.1) pchsFindCustomer7() EndIf EndFunction Function next() EndFunction Quest Property pchsProstitutionQuest001 Auto Quest Property pchsProstitutionDialogueQuest Auto Quest Property pchsProstitutionQuest Auto bool Property Customer1A = true Auto bool Property Customer2A = true Auto bool Property Customer3A = true Auto bool Property Customer4A = true Auto bool Property Customer5A = true Auto bool Property Customer6A = true Auto bool Property Customer7A = true Auto ObjectReference Property Customer Auto ObjectReference Property Customer1 Auto ObjectReference Property Customer2 Auto ObjectReference Property Customer3 Auto ObjectReference Property Customer4 Auto ObjectReference Property Customer5 Auto ObjectReference Property Customer6 Auto ObjectReference Property Customer7 Auto ObjectReference Property Customer10 Auto ObjectReference Property Customer20 Auto ObjectReference Property Customer30 Auto ObjectReference Property Customer40 Auto ObjectReference Property Customer50 Auto ObjectReference Property Customer60 Auto ObjectReference Property Customer70 Auto ObjectReference Property XMarkerpchsqueue01 Auto ObjectReference Property XMarkerpchsqueue02 Auto ObjectReference Property XMarkerpchsqueue03 Auto ObjectReference Property XMarkerpchsqueue04 Auto ObjectReference Property XMarkerpchsqueue05 Auto ObjectReference Property XMarkerpchsqueue06 Auto ObjectReference Property XMarkerpchsqueue07 Auto Faction Property pchsProstitution1Faction Auto Faction Property pchsProstitution2Faction Auto Faction Property pchsProstitution3Faction Auto Faction Property pchsProstitution4Faction Auto Faction Property pchsProstitution5Faction Auto Faction Property pchsProstitution6Faction Auto Faction Property pchsProstitution7Faction Auto Faction Property pchsProstitutionFinishFaction Auto ReferenceAlias Property pchscustomer1package Auto ReferenceAlias Property pchscustomermarker2 Auto ReferenceAlias Property pchscustomermarker3 Auto ReferenceAlias Property pchscustomermarker4 Auto ReferenceAlias Property pchscustomermarker5 Auto ReferenceAlias Property pchscustomermarker6 Auto ReferenceAlias Property pchscustomermarker7 Auto ReferenceAlias Property pchscustomermarker8 Auto ReferenceAlias Property pchsProstitutionGoodMorning Auto ReferenceAlias Property pchscustomerLeave00 Auto ReferenceAlias Property pchsFatherAlias Auto SexLabFramework Property SexLab Auto Actor Property PlayerRef Auto Actor Property FatherRef Auto ReferenceAlias Property pchsProstitutionCustomerApproach Auto Forcegreet can be a bit finicky in my experience. If you don't need the player to make a choice you could consider using a scene to have the first one say something instead. In any case general advice: Start from something simple and once that works start expanding it. So: (1) Have one customer, have them go to a marker once that works. (2) Have one customer, have them force greet the player and do whatever. (3) Have two customers, have the second move to the first place after first FGs the player. (4) then expand to any number. Also: Make sure the conditions on (at least on of the responses in) the forcegreet topic are satified. If the dialog is on another quest that quest may have to be running...not sure. If the quest is start game enbled you indeed need to update the seq file ... but would not expect that to be the case here. More specific: Are you sure your customer management is working, can't be sure without the context but seems overly complicated. This looks like the quest fragment but I'm missing the ALIAS_... seems this quest has no aliases? Are ReferenceAlias Property pchscustomer1package Auto ReferenceAlias Property pchscustomermarker2 Auto etc. Aliases on a different quest? (are they properly filled?) What I would expect on the quest is (for a queue of x): alias spot 1-x, for the waiting locations (filled with specific marker reference picked from the render window) alias client 1-x, for the clients filled with conditions, all (except first) optional (not choosing `allow reuse in quest' ensures all different). Package assigned to client i: `move to location -spot i' (small radius), (repeat when done) to send them and keep them on their spot. (i > 1) Package on client 1: Move to near player and Forcegreet - what ever else is supposed to happen then triggered from topic scripts (just have walk-away covered so it does not get stuck if player does not make a choice/get's interrupted). Once a spot frees, just move each client one alias up eg: ReferenceAlias a = GetAliasByName("Client1") as ReferenceAlias ReferenceAlias b =GetAliasByName("Client2") as ReferenceAlias Int i = 3 While b && b.getRef() ObjectReference c = b.getRef() b.clear() a.ForceRefTo( c ) (c as actor).evaluatepackage() ; Force c to start it's new behavior (move to next marker) a = b b = GetAliasByName("Client"+i) as ReferenceAlias i += 1 Utility.Wait( 1.0 ) ; give previous a second to start moving before updating next. EndWhile (or just copy a number of times instead of the loop, but I think idea is clear...) But maybe I misunderstood what you're trying to achieve. Edited June 11, 2024 by MTB
adle Posted June 13, 2024 Author Posted June 13, 2024 thanks you both. i guess i fixed the first force greet now. noticed that some stages didnt proceed and got hung up. still figure out why. might be a problem with my script beeing to heavy
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now