Full Club Mistress Scripts + Chastity Keys

Full Club Mistress Scripts + Chastity Keys
This commit is contained in:
Ben987 2019-03-04 23:13:36 -05:00
parent 03484701cd
commit ab34cc1b9d
19 changed files with 122 additions and 43 deletions

View file

@ -320,6 +320,7 @@ var AssetFemale3DCG = [
Zone: [[150, 420, 200, 80]],
Asset: [
{ Name: "MetalChastityBelt", Effect: ["Chaste", "Lock"], Block: ["ItemVulva", "ItemButt"], Value: 100, Prerequisite: "AccessVulva", Time: 20, RemoveTime: 10 },
{ Name: "MetalChastityBeltKey", Wear: false, Value: -1, Effect: ["Unlock-MetalChastityBelt"], Time: 5 },
{ Name: "LeatherCrop", Value: 40, Wear: false, BuyGroup: "LeatherCrop", Bonus: [{Type: "KidnapDomination", Factor: 3}] },
{ Name: "LeatherWhip", Value: 60, Wear: false, BuyGroup: "LeatherWhip", Bonus: [{Type: "KidnapBruteForce", Factor: 3}] }
]
@ -358,6 +359,7 @@ var AssetFemale3DCG = [
{ Name: "RoundPiercing", Value: 20, Prerequisite: "AccessBreast", Time: 15 },
{ Name: "NippleClamp", Value: 35, Prerequisite: "AccessBreast", Time: 10 },
{ Name: "MetalChastityBra", Value: 75, Effect: ["Lock", "BreastChaste"], Prerequisite: "AccessBreast", Time: 15 },
{ Name: "MetalChastityBraKey", Wear: false, Value: -1, Effect: ["Unlock-MetalChastityBra"], Time: 5 },
{ Name: "LeatherCrop", Value: 40, Wear: false, BuyGroup: "LeatherCrop", Bonus: [{Type: "KidnapDomination", Factor: 3}] },
{ Name: "LeatherWhip", Value: 60, Wear: false, BuyGroup: "LeatherWhip", Bonus: [{Type: "KidnapBruteForce", Factor: 3}] }
]

View file

@ -23,7 +23,7 @@ Cloth,TShirt1,T-Shirt
Cloth,TennisShirt1,Tennis
Cloth,Sweater1,Sweater
Cloth,MistressTop1,Mistress Top
ClothLower,,Lower Cloth
ClothLower,,Bottom
ClothLower,Skirt1,Skirt
ClothLower,TennisSkirt1,Tennis
ClothLower,Jeans1,Jeans
@ -146,6 +146,7 @@ ItemButt,TailButtPlug,Kitty Butt Plug
ItemButt,HorseButtPlug,Horse Butt Plug
ItemPelvis,,Pelvis
ItemPelvis,MetalChastityBelt,Metal Chastity Belt
ItemPelvis,MetalChastityBeltKey,Metal Chastity Belt Key
ItemPelvis,LeatherCrop,Leather Crop
ItemPelvis,LeatherWhip,Leather Whip
ItemTorso,,Torso
@ -157,6 +158,7 @@ ItemBreast,StraightPiercing,Straight Piercings
ItemBreast,RoundPiercing,Round Piercings
ItemBreast,NippleClamp,Nipple Clamps
ItemBreast,MetalChastityBra,Metal Chastity Bra
ItemBreast,MetalChastityBraKey,Metal Chastity Bra Key
ItemBreast,LeatherCrop,Leather Crop
ItemBreast,LeatherWhip,Leather Whip
ItemArms,,Arms

1 BodyUpper Upper Body
23 Cloth TennisShirt1 Tennis
24 Cloth Sweater1 Sweater
25 Cloth MistressTop1 Mistress Top
26 ClothLower Lower Cloth Bottom
27 ClothLower Skirt1 Skirt
28 ClothLower TennisSkirt1 Tennis
29 ClothLower Jeans1 Jeans
146 ItemButt HorseButtPlug Horse Butt Plug
147 ItemPelvis Pelvis
148 ItemPelvis MetalChastityBelt Metal Chastity Belt
149 ItemPelvis MetalChastityBeltKey Metal Chastity Belt Key
150 ItemPelvis LeatherCrop Leather Crop
151 ItemPelvis LeatherWhip Leather Whip
152 ItemTorso Torso
158 ItemBreast RoundPiercing Round Piercings
159 ItemBreast NippleClamp Nipple Clamps
160 ItemBreast MetalChastityBra Metal Chastity Bra
161 ItemBreast MetalChastityBraKey Metal Chastity Bra Key
162 ItemBreast LeatherCrop Leather Crop
163 ItemBreast LeatherWhip Leather Whip
164 ItemArms Arms

Binary file not shown.

After

(image error) Size: 26 KiB

Binary file not shown.

After

(image error) Size: 26 KiB

View file

@ -6,18 +6,19 @@ var InformationSheetPreviousScreen = "";
// Gets the best title for the player and returns it
function InformationSheetGetTitle() {
if (SkillGetLevel(Player, "Dressage") > 9) return TextGet("TitlePonyPegasus")
else if (SkillGetLevel(Player, "Dressage") >= 8) return TextGet("TitlePonyUnicorn")
else if (SkillGetLevel(Player, "Dressage") >= 6) return TextGet("TitlePonyWild")
else if (SkillGetLevel(Player, "Dressage") >= 5) return TextGet("TitlePonyHot")
else if (SkillGetLevel(Player, "Dressage") >= 4) return TextGet("TitlePonyWarm")
else if (SkillGetLevel(Player, "Dressage") >= 3) return TextGet("TitlePonyCold")
else if (SkillGetLevel(Player, "Dressage") >= 2) return TextGet("TitlePonyFarm")
else if (SkillGetLevel(Player, "Dressage") >= 1) return TextGet("TitlePonyFoal");
if (LogQuery("ClubMistress", "Management")) return TextGet("TitleMistress");
if (SkillGetLevel(Player, "Dressage") >= 10) return TextGet("TitlePonyPegasus");
if (LogQuery("LeadSorority", "Maid")) return TextGet("TitleHeadMaid");
if (ReputationGet("Kidnap") >= 100) return TextGet("TitleMasterKidnapper");
if (SkillGetLevel(Player, "Dressage") >= 8) return TextGet("TitlePonyUnicorn");
if (SkillGetLevel(Player, "Dressage") >= 6) return TextGet("TitlePonyWild");
if (SkillGetLevel(Player, "Dressage") >= 5) return TextGet("TitlePonyHot");
if (LogQuery("JoinedSorority", "Maid")) return TextGet("TitleMaid");
if (ReputationGet("Kidnap") >= 50) return TextGet("TitleKidnapper");
if (SkillGetLevel(Player, "Dressage") >= 4) return TextGet("TitlePonyWarm");
if (SkillGetLevel(Player, "Dressage") >= 3) return TextGet("TitlePonyCold");
if (SkillGetLevel(Player, "Dressage") >= 2) return TextGet("TitlePonyFarm");
if (SkillGetLevel(Player, "Dressage") >= 1) return TextGet("TitlePonyFoal");
return TextGet("TitleNone");
}

View file

@ -23,7 +23,8 @@ function WardrobeLoadCharacter(P) {
for (var S = 0; S < Asset.length; S++)
if ((Asset[S].Name == Player.Wardrobe[P][A].Name) && (Asset[S].Group.Name == Player.Wardrobe[P][A].Group))
if (Asset[S].Group.Category == "Appearance")
CharacterAppearanceSetItem(C, Player.Wardrobe[P][A].Group, Asset[S], Player.Wardrobe[P][A].Color);
if ((Asset[S].Value == 0) || InventoryAvailable(Player, Asset[S].Name, Asset[S].Group.Name))
CharacterAppearanceSetItem(C, Player.Wardrobe[P][A].Group, Asset[S], Player.Wardrobe[P][A].Color);
CharacterLoadCanvas(C);
}
else

View file

@ -23,13 +23,13 @@ function PlayerMistressRun() {
DrawCharacter(Player, 750, 0, 1);
DrawCharacter(PlayerMistressMistressLeft, 250, 0, 1);
DrawCharacter(PlayerMistressMistressRight, 1250, 0, 1);
if (CutsceneStage > 1) DrawCharacter(PlayerMistressMaidLeft, -200, 100, 1);
if (CutsceneStage > 1) DrawCharacter(PlayerMistressMaidRight, 1700, 100, 1);
if (CutsceneStage > 2) DrawCharacter(PlayerMistressMaidLeft, -200, 100, 1);
if (CutsceneStage > 2) DrawCharacter(PlayerMistressMaidRight, 1700, 100, 1);
DrawText(TextGet("PlayerMistress" + CutsceneStage.toString()), 1000, 980, "White", "Black");
}
// When the user clicks in the cutscene
function PlayerMistressClick() {
CutsceneStage++;
if (CutsceneStage > 4) CommonSetScreen("Room", "Management");
if (CutsceneStage > 5) CommonSetScreen("Room", "Management");
}

View file

@ -1,5 +1,6 @@
PlayerMistress0,Mistresses from the Bondage Club gather to meet you and introduce themselves.
PlayerMistress1,They congratulate you on your promotion and talk about future club events.
PlayerMistress2,"After a while, they bring in the bound maids to serve drinks and refreshments."
PlayerMistress3,"You meet many new Dominant friends who now address you as ""Mistress""."
PlayerMistress4,"Once the party is over, everyone walks away, and the club resume its activities."
PlayerMistress2,You're provided with golden keys to unlock chastity belts and chastity bras.
PlayerMistress3,"After a while, they bring in the bound maids to serve drinks and refreshments."
PlayerMistress4,"You meet many new Dominant friends who now address you as ""Mistress""."
PlayerMistress5,"Once the party is over, everyone walks away, and the club resume its activities."

1 PlayerMistress0 Mistresses from the Bondage Club gather to meet you and introduce themselves.
2 PlayerMistress1 They congratulate you on your promotion and talk about future club events.
3 PlayerMistress2 After a while, they bring in the bound maids to serve drinks and refreshments. You're provided with golden keys to unlock chastity belts and chastity bras.
4 PlayerMistress3 You meet many new Dominant friends who now address you as "Mistress". After a while, they bring in the bound maids to serve drinks and refreshments.
5 PlayerMistress4 Once the party is over, everyone walks away, and the club resume its activities. You meet many new Dominant friends who now address you as "Mistress".
6 PlayerMistress5 Once the party is over, everyone walks away, and the club resume its activities.

View file

@ -18,11 +18,12 @@ ItemBreastLeatherWhip,,,(She jumps from the searing pain on her breast.) Ouch!
ItemBreastLeatherCrop,,,(You whip her breast with the leather crop as she whimpers and bows her head.) Owwwwwww!,,
ItemPelvisLeatherWhip,,,(You whip her butt hard as she sighs.) Ahh! I promise I'll work harder Miss Head Maid!,,
ItemPelvisLeatherCrop,,,(She grumbles as you strike her butt with the crop.) Oww! That stings Miss!.,,
0,,,Greetings Mistress DialogPlayerName. Welcome to the introduction class. (She does curtsies for you.),,"DialogLogQuery(""ClubMistress"", ""Management"")"
0,,,Greetings head maid DialogPlayerName. Welcome to the introduction class. (She does curtsies for you.),,IsHeadMaid
0,,,(She stares at you.) Hello naked girl. Welcome to the introduction class.,,Player.IsNaked()
0,,,"Hello head maid DialogPlayerName, welcome to the introduction class.",,IsHeadMaid
0,,,"Hi sister, welcome to the introduction class.",,IsMaid
0,,,"Hello there, welcome to the introduction class.",,!IsMaid
0,,"Hi, my name is DialogPlayerName.","Pleased to meet you. I'm DialogCharacterName, I work here as a maid.",DialogRemove(),!IsMaid
0,,"Hi, my name is DialogPlayerName.","Pleased to meet you. I'm DialogCharacterName, I work here as a maid.",DialogRemove(),NoTitle()
0,10,"Thanks, little maid. What's going on here?","In here, you can learn how to restrain someone, and how to escape by yourself.",ChangeMaidOpinion(1),
0,10,Introduction class?,"In this class, you can learn how to restrain someone, and how to free yourself.",,
0,100,I don't need any introduction.,"Very well, would you like to practice with us then?",,

1 PlayerGagged Communicating with a gag is quite hard. You'll need to remove it to chat.
18 ItemBreastLeatherCrop (You whip her breast with the leather crop as she whimpers and bows her head.) Owwwwwww!
19 ItemPelvisLeatherWhip (You whip her butt hard as she sighs.) Ahh! I promise I'll work harder Miss Head Maid!
20 ItemPelvisLeatherCrop (She grumbles as you strike her butt with the crop.) Oww! That stings Miss!.
21 0 Greetings Mistress DialogPlayerName. Welcome to the introduction class. (She does curtsies for you.) DialogLogQuery("ClubMistress", "Management")
22 0 Greetings head maid DialogPlayerName. Welcome to the introduction class. (She does curtsies for you.) IsHeadMaid
23 0 (She stares at you.) Hello naked girl. Welcome to the introduction class. Player.IsNaked()
0 Hello head maid DialogPlayerName, welcome to the introduction class. IsHeadMaid
24 0 Hi sister, welcome to the introduction class. IsMaid
25 0 Hello there, welcome to the introduction class. !IsMaid
26 0 Hi, my name is DialogPlayerName. Pleased to meet you. I'm DialogCharacterName, I work here as a maid. DialogRemove() !IsMaid NoTitle()
27 0 10 Thanks, little maid. What's going on here? In here, you can learn how to restrain someone, and how to escape by yourself. ChangeMaidOpinion(1)
28 0 10 Introduction class? In this class, you can learn how to restrain someone, and how to free yourself.
29 0 100 I don't need any introduction. Very well, would you like to practice with us then?

View file

@ -17,11 +17,12 @@ ItemBreastLeatherWhip,,,(She trembles of pain and pleasure as you whip her breas
ItemBreastLeatherCrop,,,(You swing the crop on her torso as she moans.) Mmmh! You have lots of talents Miss.,,
ItemPelvisLeatherWhip,,,(You whip her butt as she jumps from the pain.) It hurts soooooo good Miss.,,
ItemPelvisLeatherCrop,,,(She moans and shakes her butt each time the crop lands on it.) I love the pain Miss.,,
0,,,It's an honor to see you at the introduction class Mistress DialogPlayerName.,,"DialogLogQuery(""ClubMistress"", ""Management"")"
0,,,(She giggles.) Greetings naked girl. Welcome to the introduction class.,,Player.IsNaked()
0,,,Greetings head maid DialogPlayerName. Welcome to the introduction class.,,IsHeadMaid
0,,,Greetings maid DialogPlayerName. Welcome to the introduction class.,,IsMaid
0,,,Greetings Miss. Welcome to the Bondage Club.,,!IsMaid
0,,I'm new here. My name is DialogPlayerName.,Pleased to meet you Miss DialogPlayerName. I hope you will enjoy yourself in the club.,DialogRemove(),!IsMaid
0,,"Hello, my name is DialogPlayerName.",Pleased to meet you Miss DialogPlayerName. I hope you will enjoy yourself in the club.,DialogRemove(),NoTitle()
0,,Who are you?,I'm a new club member. My name is DialogCharacterName.,DialogRemove(),
0,10,What's going on here?,This is a BDSM club. People come from all over the world to share their kinks.,,
0,10,Tell me about the club.,The Bondage Club is pretty old. People come from all over the world to share their kinks.,,

1 PlayerGagged It seems that you've been naughty. Lovely gag by the way.
17 ItemBreastLeatherCrop (You swing the crop on her torso as she moans.) Mmmh! You have lots of talents Miss.
18 ItemPelvisLeatherWhip (You whip her butt as she jumps from the pain.) It hurts soooooo good Miss.
19 ItemPelvisLeatherCrop (She moans and shakes her butt each time the crop lands on it.) I love the pain Miss.
20 0 It's an honor to see you at the introduction class Mistress DialogPlayerName. DialogLogQuery("ClubMistress", "Management")
21 0 (She giggles.) Greetings naked girl. Welcome to the introduction class. Player.IsNaked()
22 0 Greetings head maid DialogPlayerName. Welcome to the introduction class. IsHeadMaid
23 0 Greetings maid DialogPlayerName. Welcome to the introduction class. IsMaid
24 0 Greetings Miss. Welcome to the Bondage Club. !IsMaid
25 0 I'm new here. My name is DialogPlayerName. Hello, my name is DialogPlayerName. Pleased to meet you Miss DialogPlayerName. I hope you will enjoy yourself in the club. DialogRemove() !IsMaid NoTitle()
26 0 Who are you? I'm a new club member. My name is DialogCharacterName. DialogRemove()
27 0 10 What's going on here? This is a BDSM club. People come from all over the world to share their kinks.
28 0 10 Tell me about the club. The Bondage Club is pretty old. People come from all over the world to share their kinks.

View file

@ -14,6 +14,7 @@ var IntroductionRescueScenarioList = ["LatexWoman", "Newcomer", "MaidFight", "Sa
function IntroductionIsRescueScenario(ScenarioName) { return (IntroductionRescueScenario == ScenarioName) }
function IntroductionIsBothFree() { return (!IntroductionMaid.IsRestrained() && IntroductionMaid.CanTalk() && !IntroductionSub.IsRestrained() && IntroductionMaid.CanTalk()) }
function IntroductionIsMaidRestrained() { return (IntroductionMaid.IsRestrained() || !IntroductionMaid.CanTalk()) }
function IntroductionNoTitle() { return (!LogQuery("JoinedSorority", "Maid") && !LogQuery("ClubMistress", "Management")) }
// Loads the introduction room
function IntroductionLoad() {

View file

@ -28,7 +28,8 @@ ItemBreastLeatherWhip,,,(She jumps from the searing pain on her breast.) Ouch!
ItemBreastLeatherCrop,,,(You whip her breast with the leather crop as she whimpers and bows her head.),,
ItemPelvisLeatherWhip,,,(You whip her butt hard as she sighs.) I promise I'll work harder Miss Head Maid.,,
ItemPelvisLeatherCrop,,,(She grumbles as you strike her butt with the crop.) A maid work isn't easy.,,
0,,,Greetings head maid DialogPlayerName. How can I help you?,,IsHeadMaid
0,,,Greetings head maid DialogPlayerName. How can I help you? (She does curtsies for you.),,IsHeadMaid
0,,,How pleasant to see you Mistress DialogPlayerName. (She does curtsies for you.),,"DialogLogQuery(""ClubMistress"", ""Management"")"
0,,,(She giggles.) Welcome to the Maid Quarters naked girl. How can I help you?,,Player.IsNaked()
0,,,Welcome to the Maid Quarters. How can I help you?,,"DialogReputationLess(""Maid"", 49)"
0,,,You've done a lot for the maid sorority. You should apply to become a full sister.,,CanBecomeMaid

1 PlayerGagged Lovely gag. Do you need help with it? Nod if you do.
28 ItemBreastLeatherCrop (You whip her breast with the leather crop as she whimpers and bows her head.)
29 ItemPelvisLeatherWhip (You whip her butt hard as she sighs.) I promise I'll work harder Miss Head Maid.
30 ItemPelvisLeatherCrop (She grumbles as you strike her butt with the crop.) A maid work isn't easy.
31 0 Greetings head maid DialogPlayerName. How can I help you? Greetings head maid DialogPlayerName. How can I help you? (She does curtsies for you.) IsHeadMaid
32 0 How pleasant to see you Mistress DialogPlayerName. (She does curtsies for you.) DialogLogQuery("ClubMistress", "Management")
33 0 (She giggles.) Welcome to the Maid Quarters naked girl. How can I help you? Player.IsNaked()
34 0 Welcome to the Maid Quarters. How can I help you? DialogReputationLess("Maid", 49)
35 0 You've done a lot for the maid sorority. You should apply to become a full sister. CanBecomeMaid

View file

@ -20,8 +20,8 @@ var MaidQuartersCurrentRescueCompleted = false;
// Returns TRUE if the player is dressed in a maid uniform or can take a specific chore
function MaidQuartersPlayerInMaidUniform() { return ((CharacterAppearanceGetCurrentValue(Player, "Cloth", "Name") == "MaidOutfit1") && (CharacterAppearanceGetCurrentValue(Player, "Hat", "Name") == "MaidHairband1")) }
function MaidQuartersAllowMaidDrinks() { return (!Player.IsRestrained() && !MaidQuartersMaid.IsRestrained()); }
function MaidQuartersAllowMaidCleaning() { return (!Player.IsRestrained() && !MaidQuartersMaid.IsRestrained()); }
function MaidQuartersAllowMaidDrinks() { return (!Player.IsRestrained() && !MaidQuartersMaid.IsRestrained() && !LogQuery("ClubMistress", "Management")); }
function MaidQuartersAllowMaidCleaning() { return (!Player.IsRestrained() && !MaidQuartersMaid.IsRestrained() && !LogQuery("ClubMistress", "Management")); }
function MaidQuartersAllowRescue() { return (!Player.IsRestrained()); }
function MaidQuartersAllowCancelRescue() { return (MaidQuartersCurrentRescueStarted && !MaidQuartersCurrentRescueCompleted); }

View file

@ -4,7 +4,9 @@ TouchSubAngry2,,,(DialogCharacterName grabs your arm.) You're getting on my ner
TouchSubAngry3,,,(DialogCharacterName grabs your hair.) Touch my pet again and you'll get in a world of trouble!,,
TouchSubPunishment,,,(She pulls you to her by the hair.) Never touch my pet! Now you're in trouble.,,
KneelToTalk,,,"Submissive girl, what are you doing standing up in my presence? Get on your knees if you want to speak to me.",,
MistressExpulsion,,,We Mistresses have been speaking. It seems you're not fit to wear the heels anymore.,,
0,,,(She looks at you and grins.) Be direct and don't waste my time naked girl.,,Player.IsNaked()
0,,,My respects to you Mistress DialogPlayerName.,,"DialogLogQuery(""ClubMistress"", ""Management"")"
0,,,Greetings head maid DialogPlayerName. Is there a problem that the sorority cannot handle?,,"DialogLogQuery(""LeadSorority"", ""Maid"")"
0,,,Greetings master kidnapper DialogPlayerName. I trust you're having a good time hunting.,,"DialogReputationGreater(""Kidnap"", 100)"
0,,,Welcome little maid. How can I help you?,,"DialogLogQuery(""JoinedSorority"", ""Maid"")"
@ -95,8 +97,9 @@ KneelToTalk,,,"Submissive girl, what are you doing standing up in my presence?
56,0,Can you please help me?,"Very well, I will help you. (She releases you.) I hope you had fun with my pet.",PlayerRelease(),MistressWillRelease()
56,0,(Whimper and beg for mercy.),"Very well, I will help you. (She releases you.) I hope you had fun with my pet.",PlayerRelease(),MistressWillRelease()
56,,(Leave her.),,DialogLeave(),
100,,What are the rules for chastity items?,"Only the club Mistresses can unlock chastity devices. If you have an owner, you need your owner permission to be unlocked.",,
100,,Can I buy a key?,"No, the keys are not for sales. They are for Mistresses only.",DialogRemove(),
100,,What are the rules for chastity items?,Only the club Mistresses can unlock chastity devices. Make sure you use your keys wisely. (She winks at you.),,"DialogLogQuery(""ClubMistress"", ""Management"")"
100,,What are the rules for chastity items?,"Only the club Mistresses can unlock chastity devices. If you have an owner, you need your owner permission to be unlocked.",,"!DialogLogQuery(""ClubMistress"", ""Management"")"
100,,Can I buy a key?,"No, the keys are not for sales. They are for Mistresses only.",DialogRemove(),"!DialogLogQuery(""ClubMistress"", ""Management"")"
100,110,"I'm stuck, I need your help.","(She smirks.) So, a subbie girl got herself locked? What's your story?",,AllowReleaseChastity()
100,,"I'm stuck, I need your help.",(She laughs.) Better learn to enjoy it girl. I'm not releasing you.,,RefuseReleaseChastity()
100,130,A friend of mine needs your help.,What friend? You're alone girl.,,FriendIsChaste()
@ -231,11 +234,14 @@ KneelToTalk,,,"Submissive girl, what are you doing standing up in my presence?
400,,What are club Mistresses?,We Mistresses are the final arbiters in the club. We make the rules and enforce them. It's hard work but it's rewarding.,,
400,,What are the requirements?,"To apply to be a club Mistress, someone must be a club member for at least two weeks and be known to be really dominant.",,
400,,Do they get paid?,Absolutely. The salary is 100$ per week and they will receive the official Mistress outfit that I'm wearing right now.,,
400,,Do they have privileges?,They have a special privilege that comes with responsibilities. Every Mistress get special keys for chastity devices.,,
400,,What if a Mistress turns submissive?,She will be kicked out of the group and her Mistress clothes will be confiscated.,,
400,410,Can I become a club Mistress?,You've made quite a reputation for yourself in the club. Are you serious about becoming a Mistress?,,CanBeClubMistress()
400,,Can I become a club Mistress?,We've noticed your good reputation but it's not enough. Work harder to become an elite Dominant.,,CannotBeClubMistress()
400,,Can I become a club Mistress?,You? Don't make me laugh. Being a Mistress is for real Dominants only.,,CannotBeClubMistressLaugh()
400,,Can I become a club Mistress?,"Girl, you're a new member. You must be a club member for at least two weeks before you can apply.",,CannotBeClubMistressTime()
400,0,I'm here to collect my salary.,(She checks her book and gives you 100$.) Here you go Mistress DialogPlayerName. Come again in seven days for your next pay.,MistressPay(),MistressCanBePaid()
400,0,I'm here to collect my salary.,(She checks her book and frowns.) You're too early Mistress DialogPlayerName. It takes a full week between each payment.,,MistressCannotBePaid()
400,0,That's all I wanted to know.,"Good. Now, get to the point or get going.",,
410,420,"Yes, I'm serious.","Excellent! First, we need to prepare a perfect outfit for you. Do you prefer black, red or silver?",,
410,400,Do you think I can do it?,"Not with this attitude. You'll know when you're ready, and it's not now.","DialogChangeReputation(""Dominant"", -2)",
@ -248,3 +254,13 @@ KneelToTalk,,,"Submissive girl, what are you doing standing up in my presence?
430,440,So much power!,(She nods.) It's time for your inauguration party Mistress DialogPlayerName.,,
440,,Excellent! (Do the inauguration party.),,PlayerMistressCutscene(),
440,,This should be fun. (Do the party.),,PlayerMistressCutscene(),
500,510,What does it mean?,It means that you're not Dominant enough and you're getting kicked out of the Mistresses circle.,,
500,510,You're kicking me out?,"Correct, you're not Dominant enough, so you're getting kicked out of the Mistresses circle.",,
500,510,(Stay silent.),"Girl, you've really lost your Dominant touch and you're getting kicked out of the Mistresses circle.","DialogChangeReputation(""Dominant"", -3)",
510,520,That's unfair!,"Don't make it harder than it should be, you've brought this on yourself. Now get naked for your shaming.",,
510,520,I understand.,"Very good, you did brought this on yourself. Now get naked for your shaming.","DialogChangeReputation(""Dominant"", -2)",
520,,My shaming?,"Yes, your shaming period will last for an hour. You will have to wander the club naked so everyone knows you're not a Mistress anymore.",DialogRemove(),
520,530,(Grumble and get naked.),You're not allowed to wear clothes for the next hour. Now surrender your Mistress outfit and chastity keys.,PlayerStrip(),
520,530,(Stay silent and get naked.),You're not allowed to wear clothes for the next hour. Now surrender your Mistress outfit and chastity keys.,PlayerStrip(),
530,0,"Fine, take it. (Give your Mistress items.)","(She takes your Mistress items and sighs.) Such a pity, you had so much potential. Carry on girl.",MistressKicked(),
530,0,That sucks! (Give your Mistress items.),"(She takes your Mistress items and sighs.) Such a pity, you had so much potential. Carry on girl.",MistressKicked(),

1 PlayerGagged Don't waste your time talking, I cannot understand.
4 TouchSubAngry3 (DialogCharacterName grabs your hair.) Touch my pet again and you'll get in a world of trouble!
5 TouchSubPunishment (She pulls you to her by the hair.) Never touch my pet! Now you're in trouble.
6 KneelToTalk Submissive girl, what are you doing standing up in my presence? Get on your knees if you want to speak to me.
7 MistressExpulsion We Mistresses have been speaking. It seems you're not fit to wear the heels anymore.
8 0 (She looks at you and grins.) Be direct and don't waste my time naked girl. Player.IsNaked()
9 0 My respects to you Mistress DialogPlayerName. DialogLogQuery("ClubMistress", "Management")
10 0 Greetings head maid DialogPlayerName. Is there a problem that the sorority cannot handle? DialogLogQuery("LeadSorority", "Maid")
11 0 Greetings master kidnapper DialogPlayerName. I trust you're having a good time hunting. DialogReputationGreater("Kidnap", 100)
12 0 Welcome little maid. How can I help you? DialogLogQuery("JoinedSorority", "Maid")
97 56 0 Can you please help me? Very well, I will help you. (She releases you.) I hope you had fun with my pet. PlayerRelease() MistressWillRelease()
98 56 0 (Whimper and beg for mercy.) Very well, I will help you. (She releases you.) I hope you had fun with my pet. PlayerRelease() MistressWillRelease()
99 56 (Leave her.) DialogLeave()
100 100 What are the rules for chastity items? Only the club Mistresses can unlock chastity devices. If you have an owner, you need your owner permission to be unlocked. Only the club Mistresses can unlock chastity devices. Make sure you use your keys wisely. (She winks at you.) DialogLogQuery("ClubMistress", "Management")
101 100 Can I buy a key? What are the rules for chastity items? No, the keys are not for sales. They are for Mistresses only. Only the club Mistresses can unlock chastity devices. If you have an owner, you need your owner permission to be unlocked. DialogRemove() !DialogLogQuery("ClubMistress", "Management")
102 100 Can I buy a key? No, the keys are not for sales. They are for Mistresses only. DialogRemove() !DialogLogQuery("ClubMistress", "Management")
103 100 110 I'm stuck, I need your help. (She smirks.) So, a subbie girl got herself locked? What's your story? AllowReleaseChastity()
104 100 I'm stuck, I need your help. (She laughs.) Better learn to enjoy it girl. I'm not releasing you. RefuseReleaseChastity()
105 100 130 A friend of mine needs your help. What friend? You're alone girl. FriendIsChaste()
234 400 What are club Mistresses? We Mistresses are the final arbiters in the club. We make the rules and enforce them. It's hard work but it's rewarding.
235 400 What are the requirements? To apply to be a club Mistress, someone must be a club member for at least two weeks and be known to be really dominant.
236 400 Do they get paid? Absolutely. The salary is 100$ per week and they will receive the official Mistress outfit that I'm wearing right now.
237 400 Do they have privileges? They have a special privilege that comes with responsibilities. Every Mistress get special keys for chastity devices.
238 400 What if a Mistress turns submissive? She will be kicked out of the group and her Mistress clothes will be confiscated.
239 400 410 Can I become a club Mistress? You've made quite a reputation for yourself in the club. Are you serious about becoming a Mistress? CanBeClubMistress()
240 400 Can I become a club Mistress? We've noticed your good reputation but it's not enough. Work harder to become an elite Dominant. CannotBeClubMistress()
241 400 Can I become a club Mistress? You? Don't make me laugh. Being a Mistress is for real Dominants only. CannotBeClubMistressLaugh()
242 400 Can I become a club Mistress? Girl, you're a new member. You must be a club member for at least two weeks before you can apply. CannotBeClubMistressTime()
243 400 0 I'm here to collect my salary. (She checks her book and gives you 100$.) Here you go Mistress DialogPlayerName. Come again in seven days for your next pay. MistressPay() MistressCanBePaid()
244 400 0 I'm here to collect my salary. (She checks her book and frowns.) You're too early Mistress DialogPlayerName. It takes a full week between each payment. MistressCannotBePaid()
245 400 0 That's all I wanted to know. Good. Now, get to the point or get going.
246 410 420 Yes, I'm serious. Excellent! First, we need to prepare a perfect outfit for you. Do you prefer black, red or silver?
247 410 400 Do you think I can do it? Not with this attitude. You'll know when you're ready, and it's not now. DialogChangeReputation("Dominant", -2)
254 430 440 So much power! (She nods.) It's time for your inauguration party Mistress DialogPlayerName.
255 440 Excellent! (Do the inauguration party.) PlayerMistressCutscene()
256 440 This should be fun. (Do the party.) PlayerMistressCutscene()
257 500 510 What does it mean? It means that you're not Dominant enough and you're getting kicked out of the Mistresses circle.
258 500 510 You're kicking me out? Correct, you're not Dominant enough, so you're getting kicked out of the Mistresses circle.
259 500 510 (Stay silent.) Girl, you've really lost your Dominant touch and you're getting kicked out of the Mistresses circle. DialogChangeReputation("Dominant", -3)
260 510 520 That's unfair! Don't make it harder than it should be, you've brought this on yourself. Now get naked for your shaming.
261 510 520 I understand. Very good, you did brought this on yourself. Now get naked for your shaming. DialogChangeReputation("Dominant", -2)
262 520 My shaming? Yes, your shaming period will last for an hour. You will have to wander the club naked so everyone knows you're not a Mistress anymore. DialogRemove()
263 520 530 (Grumble and get naked.) You're not allowed to wear clothes for the next hour. Now surrender your Mistress outfit and chastity keys. PlayerStrip()
264 520 530 (Stay silent and get naked.) You're not allowed to wear clothes for the next hour. Now surrender your Mistress outfit and chastity keys. PlayerStrip()
265 530 0 Fine, take it. (Give your Mistress items.) (She takes your Mistress items and sighs.) Such a pity, you had so much potential. Carry on girl. MistressKicked()
266 530 0 That sucks! (Give your Mistress items.) (She takes your Mistress items and sighs.) Such a pity, you had so much potential. Carry on girl. MistressKicked()

View file

@ -16,11 +16,10 @@ var ManagementRandomActivityList = ["AddArms", "RemoveArms", "AddGag", "RemoveGa
var ManagementVisitRoom = false;
// Returns TRUE if the dialog situation is allowed
function ManagementNoTitle() { return (!LogQuery("JoinedSorority", "Maid") && (ReputationGet("Kidnap") < 50)) }
function ManagementNoTitle() { return (!LogQuery("JoinedSorority", "Maid") && !LogQuery("ClubMistress", "Management") && (ReputationGet("Kidnap") < 50)) }
function ManagementGetMistressAngryCount(InCount) { return (InCount == ManagementMistressAngryCount) }
function ManagementMistressAngryAdd() { ManagementMistressAngryCount++ }
function ManagementMistressWillRelease() { return (CommonTime() >= ManagementMistressReleaseTimer) }
function ManagementFriendIsChaste() { return (((PrivateCharacter.length > 1) && PrivateCharacter[1].IsChaste()) || ((PrivateCharacter.length > 2) && PrivateCharacter[2].IsChaste()) || ((PrivateCharacter.length > 3) && PrivateCharacter[3].IsChaste())); }
function ManagementCanPlayWithoutPermission() { return (!ManagementMistressAllowPlay && Player.CanInteract() && (ManagementMistressReleaseTimer == 0) && !ManagementIsClubSlave()) }
function ManagementOwnerFromBondageCollege() { return ((Player.Owner == "NPC-Sidney") || (Player.Owner == "NPC-Amanda") || (Player.Owner == "NPC-Jennifer")) }
function ManagementOwnerInPrivateRoom() { return PrivateOwnerInRoom() }
@ -43,10 +42,20 @@ function ManagementNoMistressInPrivateRoom() { return (((PrivateCharacter.length
function ManagementIsClubSlave() { return ((InventoryGet(Player, "ItemNeck") != null) && (InventoryGet(Player, "ItemNeck").Asset.Name == "ClubSlaveCollar")) }
function ManagementCanTransferToRoom() { return (LogQuery("RentRoom", "PrivateRoom") && (PrivateCharacter.length < PrivateCharacterMax)) }
function ManagementWontVisitRoom() { return (!ManagementVisitRoom && ManagementCanTransferToRoom()) }
function ManagementCanBeClubMistress() { return ((ReputationGet("Dominant") >= 100) && ((Math.floor((CurrentTime - Player.Creation) / 86400000)) >= 14) && !LogQuery("ClubMistress", "Management") && !Player.IsRestrained() && !Player.IsKneeling()) }
function ManagementCannotBeClubMistress() { return ((ReputationGet("Dominant") < 100) && (ReputationGet("Dominant") >= 50) && ((Math.floor((CurrentTime - Player.Creation) / 86400000)) >= 14) && !LogQuery("ClubMistress", "Management") && !Player.IsRestrained() && !Player.IsKneeling()) }
function ManagementCannotBeClubMistressLaugh() { return ((ReputationGet("Dominant") < 50) && ((Math.floor((CurrentTime - Player.Creation) / 86400000)) >= 14) && !LogQuery("ClubMistress", "Management") && !Player.IsRestrained() && !Player.IsKneeling()) }
function ManagementCannotBeClubMistressTime() { return (((Math.floor((CurrentTime - Player.Creation) / 86400000)) < 14) && !LogQuery("ClubMistress", "Management") && !Player.IsRestrained() && !Player.IsKneeling()) }
function ManagementCanBeClubMistress() { return ((ReputationGet("Dominant") >= 100) && ((Math.floor((CurrentTime - Player.Creation) / 86400000)) >= 14) && !LogQuery("ClubMistress", "Management") && !Player.IsRestrained() && !Player.IsKneeling() && !LogQuery("BlockChange", "Rule")) }
function ManagementCannotBeClubMistress() { return ((ReputationGet("Dominant") < 100) && (ReputationGet("Dominant") >= 50) && ((Math.floor((CurrentTime - Player.Creation) / 86400000)) >= 14) && !LogQuery("ClubMistress", "Management") && !Player.IsRestrained() && !Player.IsKneeling() && !LogQuery("BlockChange", "Rule")) }
function ManagementCannotBeClubMistressLaugh() { return ((ReputationGet("Dominant") < 50) && ((Math.floor((CurrentTime - Player.Creation) / 86400000)) >= 14) && !LogQuery("ClubMistress", "Management") && !Player.IsRestrained() && !Player.IsKneeling() && !LogQuery("BlockChange", "Rule")) }
function ManagementCannotBeClubMistressTime() { return (((Math.floor((CurrentTime - Player.Creation) / 86400000)) < 14) && !LogQuery("ClubMistress", "Management") && !Player.IsRestrained() && !Player.IsKneeling() && !LogQuery("BlockChange", "Rule")) }
function ManagementMistressCanBePaid() { return (LogQuery("ClubMistress", "Management") && !LogQuery("MistressWasPaid", "Management")) }
function ManagementMistressCannotBePaid() { return (LogQuery("ClubMistress", "Management") && LogQuery("MistressWasPaid", "Management")) }
// Returns TRUE if any friend in the private room is chaste
function ManagementFriendIsChaste() {
for(var C = 1; C < PrivateCharacter.length; C++)
if ((PrivateCharacter[C].AccountName != null) && PrivateCharacter[C].IsChaste())
return true;
return false;
}
// Loads the club management room, creates the Mistress and sub character
function ManagementLoad() {
@ -84,8 +93,11 @@ function ManagementRun() {
function ManagementClick() {
if ((MouseX >= 250) && (MouseX < 750) && (MouseY >= 0) && (MouseY < 1000)) CharacterSetCurrent(Player);
if ((MouseX >= 750) && (MouseX < 1250) && (MouseY >= 0) && (MouseY < 1000) && !ManagementEmpty) {
if ((ManagementMistress.Stage == "0") && ManagementIsClubSlave())
ManagementMistress.Stage = "350";
if ((ManagementMistress.Stage == "0") && ManagementIsClubSlave()) ManagementMistress.Stage = "350";
if ((ManagementMistress.Stage == "0") && (ReputationGet("Dominant") < 50) && LogQuery("ClubMistress", "Management")) {
ManagementMistress.Stage = "500";
ManagementMistress.CurrentDialog = DialogFind(ManagementMistress, "MistressExpulsion");
}
if (((ManagementMistress.Stage == "0") || (ManagementMistress.Stage == "5")) && (ReputationGet("Dominant") < 0) && !Player.IsKneeling()) {
ReputationProgress("Dominant", 1);
ManagementMistress.CurrentDialog = DialogFind(ManagementMistress, "KneelToTalk");
@ -309,12 +321,34 @@ function ManagementClubSlaveTransferToRoom() {
function ManagementGetMistressOutfit(Color) {
CharacterRelease(Player);
CharacterArchetypeClothes(Player, "Mistress", Color);
ServerPlayerInventorySync();
}
// When the player starts the Mistress introduction party
function ManagementPlayerMistressCutscene() {
LogAdd("ClubMistress", "Management");
LogAdd("MistressWasPaid", "Management", CurrentTime + 604800000);
DialogLeave();
ManagementMistress.Stage = "0";
CommonSetScreen("Cutscene", "PlayerMistress");
}
// When the player gets her Mistress pay
function ManagementMistressPay() {
LogAdd("MistressWasPaid", "Management", CurrentTime + 604800000);
CharacterChangeMoney(Player, 100);
}
// When the player gets kicked out of the Mistress community
function ManagementMistressKicked() {
LogAdd("BlockChange", "Rule", CurrentTime + 3600000);
LogDelete("ClubMistress", "Management");
ReputationProgress("Dominant", -6);
InventoryDelete(Player, "MistressGloves", "Gloves", false);
InventoryDelete(Player, "MistressBoots", "Shoes", false);
InventoryDelete(Player, "MistressTop", "Cloth", false);
InventoryDelete(Player, "MistressBottom", "ClothLower", false);
InventoryDelete(Player, "MetalChastityBeltKey", "ItemPelvis", false);
InventoryDelete(Player, "MetalChastityBraKey", "ItemBreast", false);
ServerPlayerInventorySync();
}

View file

@ -127,10 +127,10 @@ function CharacterArchetypeClothes(C, Archetype, ForceColor) {
// Maid archetype
if (Archetype == "Maid") {
InventoryAdd(C, "MaidOutfit1", "Cloth");
InventoryAdd(C, "MaidOutfit1", "Cloth", false);
CharacterAppearanceSetItem(C, "Cloth", C.Inventory[C.Inventory.length - 1].Asset);
CharacterAppearanceSetColorForGroup(C, "Default", "Cloth");
InventoryAdd(C, "MaidHairband1", "Hat");
InventoryAdd(C, "MaidHairband1", "Hat", false);
CharacterAppearanceSetItem(C, "Hat", C.Inventory[C.Inventory.length - 1].Asset);
CharacterAppearanceSetColorForGroup(C, "Default", "Hat");
C.AllowItem = (LogQuery("LeadSorority", "Maid"));
@ -141,14 +141,16 @@ function CharacterArchetypeClothes(C, Archetype, ForceColor) {
var ColorList = ["#333333", "#AA4444", "#AAAAAA"];
var Color = (ForceColor == null) ? CommonRandomItemFromList("", ColorList) : ForceColor;
CharacterAppearanceSetItem(C, "Hat", null);
InventoryAdd(C, "MistressGloves", "Gloves");
InventoryAdd(C, "MistressGloves", "Gloves", false);
InventoryWear(C, "MistressGloves", "Gloves", Color);
InventoryAdd(C, "MistressBoots", "Shoes");
InventoryAdd(C, "MistressBoots", "Shoes", false);
InventoryWear(C, "MistressBoots", "Shoes", Color);
InventoryAdd(C, "MistressTop", "Cloth");
InventoryAdd(C, "MistressTop", "Cloth", false);
InventoryWear(C, "MistressTop", "Cloth", Color);
InventoryAdd(C, "MistressBottom", "ClothLower");
InventoryAdd(C, "MistressBottom", "ClothLower", false);
InventoryWear(C, "MistressBottom", "ClothLower", Color);
InventoryAdd(C, "MetalChastityBeltKey", "ItemPelvis", false);
InventoryAdd(C, "MetalChastityBraKey", "ItemBreast", false);
}
}

View file

@ -32,6 +32,22 @@ function LogAdd(NewLogName, NewLogGroup, NewLogValue, Push) {
}
// Deletes a log entry
function LogDelete(DelLogName, DelLogGroup, Push) {
// Finds the log entry and deletes it
for (var L = 0; L < Log.length; L++)
if ((Log[L].Name == DelLogName) && (Log[L].Group == DelLogGroup)) {
Log.splice(L, 1);
break;
}
// Sends the new log to the server
if ((Push == null) || Push)
ServerPlayerLogSync();
}
// Checks if the log exists, return true if it does (if there's a value, it counts as an expiry time)
function LogQuery(QueryLogName, QueryLogGroup) {
for (var L = 0; L < Log.length; L++)

View file

@ -40,8 +40,10 @@ function InventoryDelete(C, DelItemName, DelItemGroup, Push) {
// First, we remove the item from the player inventory
for (var I = 0; I < C.Inventory.length; I++)
if ((C.Inventory[I].Name == DelItemName) && (C.Inventory[I].Group == DelItemGroup))
if ((C.Inventory[I].Name == DelItemName) && (C.Inventory[I].Group == DelItemGroup)) {
C.Inventory.splice(I, 1);
break;
}
// Next, we call the player account service to remove the item
if ((C.ID == 0) && ((Push == null) || Push))

View file

@ -80,11 +80,9 @@
TO DO:
TEST : Bring a gagged girl to your room after a kidnapping
Code : Kick player out from being Mistress if below 50 Dominant
Code : Pay player 100$ every week for being Mistress
Credit Fluend for Russian translation
Bug??? Remove Collar from outfit screen
Add new Patreon users
TO CODE: Collar subs
}*/