added
This commit is contained in:
		
							parent
							
								
									789d17135e
								
							
						
					
					
						commit
						8755defa30
					
				|  | @ -0,0 +1,41 @@ | |||
| scriptName IchirouBodyChange extends activemagiceffect | ||||
| 
 | ||||
| ;-- Properties -------------------------------------- | ||||
| formlist property IchirouHeadPartList auto | ||||
| ichirouracemcmmenu property IchirouRaceMCMMEnuInstance auto | ||||
| formlist property IchirouFaceTextureSetList auto | ||||
| formlist property IchirouChangeSkinList auto | ||||
| 
 | ||||
| ;-- Variables --------------------------------------- | ||||
| Actor Player | ||||
| ActorBase PlayerBase | ||||
| 
 | ||||
| ;-- Functions --------------------------------------- | ||||
| 
 | ||||
| ; Skipped compiler generated GetState | ||||
| 
 | ||||
| function OnEffectStart(Actor akTarget, Actor akCaster) | ||||
| 
 | ||||
| 	TextureSet FaceTextureSetToChange | ||||
| 	Armor SkinToChange | ||||
| 	HeadPart FaceToChange | ||||
| 	debug.Notification("Ichirou Body Loading") | ||||
| 	Player = game.GetPlayer() | ||||
| 	PlayerBase = Player.GetActorBase() | ||||
| 	if IchirouRaceMCMMEnuInstance.BodyChangeShapeFlag == 0 | ||||
| 		FaceToChange = IchirouRaceMCMMEnuInstance.HeadOriginal | ||||
| 		FaceTextureSetToChange = IchirouRaceMCMMEnuInstance.FaceTextureOriginal | ||||
| 		SkinToChange = IchirouRaceMCMMEnuInstance.SkinOriginal | ||||
| 	elseIf IchirouRaceMCMMEnuInstance.BodyChangeShapeFlag != 0 | ||||
| 		FaceToChange = IchirouHeadPartList.getat(IchirouRaceMCMMEnuInstance.BodyChangeShapeFlag) as HeadPart | ||||
| 		FaceTextureSetToChange = IchirouFaceTextureSetList.getat(IchirouRaceMCMMEnuInstance.BodyChangeShapeFlag) as TextureSet | ||||
| 		SkinToChange = IchirouChangeSkinList.getat(IchirouRaceMCMMEnuInstance.BodyChangeShapeFlag) as Armor | ||||
| 	endIf | ||||
| 	Player.ChangeHeadPart(FaceToChange) | ||||
| 	PlayerBase.SetSkin(SkinToChange) | ||||
| 	PlayerBase.SetFaceTextureSet(FaceTextureSetToChange) | ||||
| 	Player.QueueNiNodeUpdate() | ||||
| 	Player.RegenerateHead() | ||||
| endFunction | ||||
| 
 | ||||
| ; Skipped compiler generated GotoState | ||||
|  | @ -0,0 +1,487 @@ | |||
| scriptName IchirouRaceMCMMenu extends SKI_ConfigBase | ||||
| 
 | ||||
| ;-- Properties -------------------------------------- | ||||
| headpart property HeadOriginal auto | ||||
| Int property BodyChangeShapeFlag auto | ||||
| formlist property IchirouBodyWardrobe auto | ||||
| textureset property FaceTextureOriginal auto | ||||
| armor property SkinOriginal auto | ||||
| spell property IchirouBodyChangeSpell auto | ||||
| formlist property IchirouBanRaceList auto | ||||
| Bool property IsSystemEnable hidden | ||||
| 	Bool function get() | ||||
| 
 | ||||
| 		if self.PlayerSexAllow() && self.PlayerRaceAllow() | ||||
| 			return true | ||||
| 		else | ||||
| 			return false | ||||
| 		endIf | ||||
| 	endFunction | ||||
| endproperty | ||||
| Int[] property ArmorShapeFlag auto | ||||
| Bool property IsWardrobeEnable hidden | ||||
| 	Bool function get() | ||||
| 
 | ||||
| 		if self.IsSystemEnable && !self.IsOriginChange() && IsWardrobeCheck as Bool | ||||
| 			return true | ||||
| 		else | ||||
| 			return false | ||||
| 		endIf | ||||
| 	endFunction | ||||
| endproperty | ||||
| 
 | ||||
| ;-- Variables --------------------------------------- | ||||
| Int OptionBodyShapeRegenerate | ||||
| Int[] ShapeEnableFlag | ||||
| Int OptionResetOrigin | ||||
| Int[] OptionShape | ||||
| String[] BodyShapeName | ||||
| Int[] OptionWardrobeSlider | ||||
| Bool IsShapeChange | ||||
| Int OptionAddCurrentArmor | ||||
| Int[] OptionWardrobeSlotClear | ||||
| armor CurrentArmor | ||||
| Int ResetOriginEnableFlag | ||||
| Int WardrobeSize | ||||
| Bool IsWardrobeCheck = false | ||||
| Int RegenerateEnableFlag | ||||
| Int ToggleWardrobeEnable | ||||
| Race RaceOriginal | ||||
| Int OptionClearUpWardrobe | ||||
| Int OptionBodyShapeCurrent | ||||
| 
 | ||||
| ;-- Functions --------------------------------------- | ||||
| 
 | ||||
| function GetPlayerOriginalSet() | ||||
| 
 | ||||
| 	SkinOriginal = game.GetPlayer().GetActorBase().GetSkin() | ||||
| 	HeadOriginal = game.GetPlayer().GetActorBase().GetNthHeadPart(0) | ||||
| 	FaceTextureOriginal = game.GetPlayer().GetActorBase().GetFaceTextureSet() | ||||
| 	RaceOriginal = game.GetPlayer().GetActorBase().GetRace() | ||||
| 	debug.Notification("OriginSetting") | ||||
| endFunction | ||||
| 
 | ||||
| function ClearUpWardrobe() | ||||
| 
 | ||||
| 	IchirouBodyWardrobe.Revert() | ||||
| 	ArmorShapeFlag[0] = 0 | ||||
| 	ArmorShapeFlag[1] = 0 | ||||
| 	ArmorShapeFlag[2] = 0 | ||||
| 	ArmorShapeFlag[3] = 0 | ||||
| 	ArmorShapeFlag[4] = 0 | ||||
| 	ArmorShapeFlag[5] = 0 | ||||
| 	ArmorShapeFlag[6] = 0 | ||||
| 	ArmorShapeFlag[7] = 0 | ||||
| 	ArmorShapeFlag[8] = 0 | ||||
| 	ArmorShapeFlag[9] = 0 | ||||
| 	self.ForcePageReset() | ||||
| endFunction | ||||
| 
 | ||||
| function GenerateWardrobeUI() | ||||
| 
 | ||||
| 	WardrobeSize = IchirouBodyWardrobe.GetSize() | ||||
| 	Int k = 0 | ||||
| 	OptionWardrobeSlotClear = new Int[10] | ||||
| 	OptionWardrobeSlider = new Int[10] | ||||
| 	while k < WardrobeSize | ||||
| 		self.AddHeaderOption(IchirouBodyWardrobe.GetAt(k).GetName(), 0) | ||||
| 		OptionWardrobeSlider[k] = self.AddSliderOption("BodyShape", ArmorShapeFlag[k] as Float, "{0}", 0) | ||||
| 		OptionWardrobeSlotClear[k] = self.AddTextOption("", "Clear", self.OPTION_FLAG_NONE) | ||||
| 		self.AddEmptyOption() | ||||
| 		k += 1 | ||||
| 	endWhile | ||||
| endFunction | ||||
| 
 | ||||
| Bool function IsOriginChange() | ||||
| 
 | ||||
| 	if !IsShapeChange && BodyChangeShapeFlag == 0 | ||||
| 		if SkinOriginal != game.GetPlayer().GetActorBase().GetSkin() || HeadOriginal != game.GetPlayer().GetActorBase().GetNthHeadPart(0) || FaceTextureOriginal != game.GetPlayer().GetActorBase().GetFaceTextureSet() || RaceOriginal != game.GetPlayer().GetActorBase().GetRace() | ||||
| 			return true | ||||
| 		else | ||||
| 			return false | ||||
| 		endIf | ||||
| 	else | ||||
| 		return false | ||||
| 	endIf | ||||
| endFunction | ||||
| 
 | ||||
| function OnGameReload() | ||||
| 
 | ||||
| 	parent.OnGameReload() | ||||
| 	Pages = new String[2] | ||||
| 	Pages[0] = "Ichirou Body" | ||||
| 	Pages[1] = "Ichirou Wardrobe" | ||||
| 	if self.IsOriginChange() | ||||
| 		self.GetPlayerOriginalSet() | ||||
| 	endIf | ||||
| 	if self.PlayerRaceAllow() && self.PlayerSexAllow() | ||||
| 		IchirouBodyChangeSpell.Cast(game.GetPlayer() as objectreference, none) | ||||
| 	endIf | ||||
| endFunction | ||||
| 
 | ||||
| function AddArmorToList() | ||||
| 
 | ||||
| 	if !IchirouBodyWardrobe.HasForm(CurrentArmor as form) | ||||
| 		IchirouBodyWardrobe.AddForm(CurrentArmor as form) | ||||
| 	endIf | ||||
| 	self.ForcePageReset() | ||||
| endFunction | ||||
| 
 | ||||
| function OnOptionHighlight(Int a_option) | ||||
| 
 | ||||
| 	if a_option == OptionShape[0] | ||||
| 		self.SetInfoText("OriginalShapeInfo") | ||||
| 	elseIf a_option == OptionShape[1] | ||||
| 		self.SetInfoText("3BA Body") | ||||
| 	elseIf a_option == OptionShape[2] | ||||
| 		self.SetInfoText("BHUNP Body") | ||||
| 	elseIf a_option == OptionBodyShapeRegenerate | ||||
| 		self.SetInfoText("RegenerateAfterSRM") | ||||
| 	elseIf a_option == OptionResetOrigin | ||||
| 		self.SetInfoText("ResetOriginInfo") | ||||
| 	elseIf a_option == OptionAddCurrentArmor | ||||
| 		self.SetInfoText("AddToWardrobeInfo") | ||||
| 	elseIf a_option == OptionWardrobeSlider[0] | ||||
| 		self.SetInfoText("SetArmorBodyShapeInfo") | ||||
| 	elseIf a_option == OptionWardrobeSlider[1] | ||||
| 		self.SetInfoText("SetArmorBodyShapeInfo") | ||||
| 	elseIf a_option == OptionWardrobeSlider[2] | ||||
| 		self.SetInfoText("SetArmorBodyShapeInfo") | ||||
| 	elseIf a_option == OptionWardrobeSlider[3] | ||||
| 		self.SetInfoText("SetArmorBodyShapeInfo") | ||||
| 	elseIf a_option == OptionWardrobeSlider[4] | ||||
| 		self.SetInfoText("SetArmorBodyShapeInfo") | ||||
| 	elseIf a_option == OptionWardrobeSlider[5] | ||||
| 		self.SetInfoText("SetArmorBodyShapeInfo") | ||||
| 	elseIf a_option == OptionWardrobeSlider[6] | ||||
| 		self.SetInfoText("SetArmorBodyShapeInfo") | ||||
| 	elseIf a_option == OptionWardrobeSlider[7] | ||||
| 		self.SetInfoText("SetArmorBodyShapeInfo") | ||||
| 	elseIf a_option == OptionWardrobeSlider[8] | ||||
| 		self.SetInfoText("SetArmorBodyShapeInfo") | ||||
| 	elseIf a_option == OptionWardrobeSlider[9] | ||||
| 		self.SetInfoText("SetArmorBodyShapeInfo") | ||||
| 	endIf | ||||
| endFunction | ||||
| 
 | ||||
| function OnOptionSliderOpen(Int a_option) | ||||
| 
 | ||||
| 	if a_option == OptionWardrobeSlider[0] | ||||
| 		self.SetSliderDialogStartValue(ArmorShapeFlag[0] as Float) | ||||
| 		self.SetSliderDialogDefaultValue(0 as Float) | ||||
| 		self.SetSliderDialogRange(0 as Float, 9 as Float) | ||||
| 		self.SetSliderDialogInterval(1 as Float) | ||||
| 	elseIf a_option == OptionWardrobeSlider[1] | ||||
| 		self.SetSliderDialogStartValue(ArmorShapeFlag[1] as Float) | ||||
| 		self.SetSliderDialogDefaultValue(0 as Float) | ||||
| 		self.SetSliderDialogRange(0 as Float, 9 as Float) | ||||
| 		self.SetSliderDialogInterval(1 as Float) | ||||
| 	elseIf a_option == OptionWardrobeSlider[2] | ||||
| 		self.SetSliderDialogStartValue(ArmorShapeFlag[2] as Float) | ||||
| 		self.SetSliderDialogDefaultValue(0 as Float) | ||||
| 		self.SetSliderDialogRange(0 as Float, 9 as Float) | ||||
| 		self.SetSliderDialogInterval(1 as Float) | ||||
| 	elseIf a_option == OptionWardrobeSlider[3] | ||||
| 		self.SetSliderDialogStartValue(ArmorShapeFlag[3] as Float) | ||||
| 		self.SetSliderDialogDefaultValue(0 as Float) | ||||
| 		self.SetSliderDialogRange(0 as Float, 9 as Float) | ||||
| 		self.SetSliderDialogInterval(1 as Float) | ||||
| 	elseIf a_option == OptionWardrobeSlider[4] | ||||
| 		self.SetSliderDialogStartValue(ArmorShapeFlag[4] as Float) | ||||
| 		self.SetSliderDialogDefaultValue(0 as Float) | ||||
| 		self.SetSliderDialogRange(0 as Float, 9 as Float) | ||||
| 		self.SetSliderDialogInterval(1 as Float) | ||||
| 	elseIf a_option == OptionWardrobeSlider[5] | ||||
| 		self.SetSliderDialogStartValue(ArmorShapeFlag[5] as Float) | ||||
| 		self.SetSliderDialogDefaultValue(0 as Float) | ||||
| 		self.SetSliderDialogRange(0 as Float, 9 as Float) | ||||
| 		self.SetSliderDialogInterval(1 as Float) | ||||
| 	elseIf a_option == OptionWardrobeSlider[6] | ||||
| 		self.SetSliderDialogStartValue(ArmorShapeFlag[6] as Float) | ||||
| 		self.SetSliderDialogDefaultValue(0 as Float) | ||||
| 		self.SetSliderDialogRange(0 as Float, 9 as Float) | ||||
| 		self.SetSliderDialogInterval(1 as Float) | ||||
| 	elseIf a_option == OptionWardrobeSlider[7] | ||||
| 		self.SetSliderDialogStartValue(ArmorShapeFlag[7] as Float) | ||||
| 		self.SetSliderDialogDefaultValue(0 as Float) | ||||
| 		self.SetSliderDialogRange(0 as Float, 9 as Float) | ||||
| 		self.SetSliderDialogInterval(1 as Float) | ||||
| 	elseIf a_option == OptionWardrobeSlider[8] | ||||
| 		self.SetSliderDialogStartValue(ArmorShapeFlag[8] as Float) | ||||
| 		self.SetSliderDialogDefaultValue(0 as Float) | ||||
| 		self.SetSliderDialogRange(0 as Float, 9 as Float) | ||||
| 		self.SetSliderDialogInterval(1 as Float) | ||||
| 	elseIf a_option == OptionWardrobeSlider[9] | ||||
| 		self.SetSliderDialogStartValue(ArmorShapeFlag[9] as Float) | ||||
| 		self.SetSliderDialogDefaultValue(0 as Float) | ||||
| 		self.SetSliderDialogRange(0 as Float, 9 as Float) | ||||
| 		self.SetSliderDialogInterval(1 as Float) | ||||
| 	endIf | ||||
| endFunction | ||||
| 
 | ||||
| ; Skipped compiler generated GetState | ||||
| 
 | ||||
| function EnableFlagUpdate() | ||||
| 
 | ||||
| 	ShapeEnableFlag = new Int[3] | ||||
| 	Int k = 0 | ||||
| 	if self.IsSystemEnable | ||||
| 		if !self.IsOriginChange() | ||||
| 			while k < 10 | ||||
| 				if k != BodyChangeShapeFlag | ||||
| 					ShapeEnableFlag[k] = self.OPTION_FLAG_NONE | ||||
| 				else | ||||
| 					ShapeEnableFlag[k] = self.OPTION_FLAG_DISABLED | ||||
| 				endIf | ||||
| 				k += 1 | ||||
| 			endWhile | ||||
| 			ResetOriginEnableFlag = self.OPTION_FLAG_DISABLED | ||||
| 			RegenerateEnableFlag = self.OPTION_FLAG_NONE | ||||
| 		else | ||||
| 			while k < 10 | ||||
| 				ShapeEnableFlag[k] = self.OPTION_FLAG_DISABLED | ||||
| 				k += 1 | ||||
| 			endWhile | ||||
| 			ResetOriginEnableFlag = self.OPTION_FLAG_NONE | ||||
| 			RegenerateEnableFlag = self.OPTION_FLAG_DISABLED | ||||
| 		endIf | ||||
| 	else | ||||
| 		ResetOriginEnableFlag = self.OPTION_FLAG_DISABLED | ||||
| 		RegenerateEnableFlag = self.OPTION_FLAG_DISABLED | ||||
| 		while k < 10 | ||||
| 			ShapeEnableFlag[k] = self.OPTION_FLAG_DISABLED | ||||
| 			k += 1 | ||||
| 		endWhile | ||||
| 	endIf | ||||
| endFunction | ||||
| 
 | ||||
| function OnPageReset(String a_page) | ||||
| 
 | ||||
| 	self.SetCursorFillMode(self.TOP_TO_BOTTOM) | ||||
| 	if a_page == "Ichirou Body" | ||||
| 		IsShapeChange = false | ||||
| 		self.SetBodyShapeName() | ||||
| 		self.EnableFlagUpdate() | ||||
| 		if self.IsSystemEnable | ||||
| 			self.AddHeaderOption("Ichirou Race System Enabled", 0) | ||||
| 		else | ||||
| 			self.AddHeaderOption("Ichirou Race System Disabled", 0) | ||||
| 		endIf | ||||
| 		self.AddEmptyOption() | ||||
| 		if self.PlayerSexAllow() | ||||
| 			self.AddHeaderOption("Ichirou Race FemaleCharacter", 0) | ||||
| 		else | ||||
| 			self.AddHeaderOption("Ichirou Race MaleCharacter", 0) | ||||
| 		endIf | ||||
| 		self.AddEmptyOption() | ||||
| 		if self.PlayerRaceAllow() | ||||
| 			self.AddHeaderOption("Ichirou Race RaceAllow", 0) | ||||
| 		else | ||||
| 			self.AddHeaderOption("Ichirou Race RaceBan", 0) | ||||
| 		endIf | ||||
| 		self.AddTextOption("RaceCurrent", game.GetPlayer().GetActorBase().GetRace().GetName(), self.OPTION_FLAG_DISABLED) | ||||
| 		OptionResetOrigin = self.AddTextOption("OptionResetOrigin", "Reset", ResetOriginEnableFlag) | ||||
| 		self.AddEmptyOption() | ||||
| 		self.AddHeaderOption("BodyShape", 0) | ||||
| 		OptionBodyShapeCurrent = self.AddTextOption("BodyShapeCurrent", BodyShapeName[BodyChangeShapeFlag], self.OPTION_FLAG_DISABLED) | ||||
| 		OptionBodyShapeRegenerate = self.AddTextOption("BodyShapeRegenerate", "ClickToEnable", RegenerateEnableFlag) | ||||
| 		self.AddEmptyOption() | ||||
| 		self.SetCursorPosition(1) | ||||
| 		self.AddHeaderOption("BodyShapeList", 0) | ||||
| 		OptionShape = new Int[3] | ||||
| 		OptionShape[0] = self.AddTextOption(BodyShapeName[0], "ClickToEnable", ShapeEnableFlag[0]) | ||||
| 		OptionShape[1] = self.AddTextOption(BodyShapeName[1], "ClickToEnable", ShapeEnableFlag[1]) | ||||
| 		OptionShape[2] = self.AddTextOption(BodyShapeName[2], "ClickToEnable", ShapeEnableFlag[2]) | ||||
| 	endIf | ||||
| 	if a_page == "Ichirou Wardrobe" | ||||
| 		CurrentArmor = game.GetPlayer().GetWornForm(4) as armor | ||||
| 		self.AddHeaderOption("BodyChange_Wardrobe", 0) | ||||
| 		ToggleWardrobeEnable = self.AddToggleOption("EnabelWardrobe", IsWardrobeCheck, self.OPTION_FLAG_NONE) | ||||
| 		OptionClearUpWardrobe = self.AddTextOption("", "ClearUp", self.OPTION_FLAG_NONE) | ||||
| 		self.AddEmptyOption() | ||||
| 		self.AddHeaderOption("CurrentArmor", 0) | ||||
| 		if !IchirouBodyWardrobe.HasForm(CurrentArmor as form) | ||||
| 			OptionAddCurrentArmor = self.AddTextOption(CurrentArmor.GetName(), "AddToWardrobe", self.OPTION_FLAG_NONE) | ||||
| 		else | ||||
| 			OptionAddCurrentArmor = self.AddTextOption(CurrentArmor.GetName(), "AlreadyInWardrobe", self.OPTION_FLAG_DISABLED) | ||||
| 		endIf | ||||
| 		self.AddEmptyOption() | ||||
| 		self.AddHeaderOption("DebugInfo", 0) | ||||
| 		self.AddTextOption("BodyFlag", BodyChangeShapeFlag as String, self.OPTION_FLAG_DISABLED) | ||||
| 		self.AddTextOption("ArmorFlag0", ArmorShapeFlag[0] as String, self.OPTION_FLAG_DISABLED) | ||||
| 		self.AddTextOption("ArmorFlag1", ArmorShapeFlag[1] as String, self.OPTION_FLAG_DISABLED) | ||||
| 		self.AddTextOption("ArmorFlag2", ArmorShapeFlag[2] as String, self.OPTION_FLAG_DISABLED) | ||||
| 		self.AddTextOption("ArmorFlag3", ArmorShapeFlag[3] as String, self.OPTION_FLAG_DISABLED) | ||||
| 		self.AddTextOption("ArmorFlag4", ArmorShapeFlag[4] as String, self.OPTION_FLAG_DISABLED) | ||||
| 		self.AddTextOption("ArmorFlag5", ArmorShapeFlag[5] as String, self.OPTION_FLAG_DISABLED) | ||||
| 		self.AddTextOption("ArmorFlag6", ArmorShapeFlag[6] as String, self.OPTION_FLAG_DISABLED) | ||||
| 		self.AddTextOption("ArmorFlag7", ArmorShapeFlag[7] as String, self.OPTION_FLAG_DISABLED) | ||||
| 		self.AddTextOption("ArmorFlag8", ArmorShapeFlag[8] as String, self.OPTION_FLAG_DISABLED) | ||||
| 		self.AddTextOption("ArmorFlag9", ArmorShapeFlag[9] as String, self.OPTION_FLAG_DISABLED) | ||||
| 		self.SetCursorPosition(1) | ||||
| 		self.GenerateWardrobeUI() | ||||
| 	endIf | ||||
| endFunction | ||||
| 
 | ||||
| function ClearArmorFromList(Int Index) | ||||
| 
 | ||||
| 	armor ArmorToClear = IchirouBodyWardrobe.GetAt(Index) as armor | ||||
| 	IchirouBodyWardrobe.RemoveAddedForm(ArmorToClear as form) | ||||
| 	Int k = Index | ||||
| 	while k < WardrobeSize - 1 | ||||
| 		ArmorShapeFlag[k] = ArmorShapeFlag[k + 1] | ||||
| 		k += 1 | ||||
| 	endWhile | ||||
| 	ArmorShapeFlag[WardrobeSize - 1] = 0 | ||||
| 	self.ForcePageReset() | ||||
| endFunction | ||||
| 
 | ||||
| function OnOptionSliderAccept(Int a_option, Float a_value) | ||||
| 
 | ||||
| 	if a_option == OptionWardrobeSlider[0] | ||||
| 		ArmorShapeFlag[0] = a_value as Int | ||||
| 		self.ForcePageReset() | ||||
| 	elseIf a_option == OptionWardrobeSlider[1] | ||||
| 		ArmorShapeFlag[1] = a_value as Int | ||||
| 		self.ForcePageReset() | ||||
| 	elseIf a_option == OptionWardrobeSlider[2] | ||||
| 		ArmorShapeFlag[2] = a_value as Int | ||||
| 		self.ForcePageReset() | ||||
| 	elseIf a_option == OptionWardrobeSlider[3] | ||||
| 		ArmorShapeFlag[3] = a_value as Int | ||||
| 		self.ForcePageReset() | ||||
| 	elseIf a_option == OptionWardrobeSlider[4] | ||||
| 		ArmorShapeFlag[4] = a_value as Int | ||||
| 		self.ForcePageReset() | ||||
| 	elseIf a_option == OptionWardrobeSlider[5] | ||||
| 		ArmorShapeFlag[5] = a_value as Int | ||||
| 		self.ForcePageReset() | ||||
| 	elseIf a_option == OptionWardrobeSlider[6] | ||||
| 		ArmorShapeFlag[6] = a_value as Int | ||||
| 		self.ForcePageReset() | ||||
| 	elseIf a_option == OptionWardrobeSlider[7] | ||||
| 		ArmorShapeFlag[7] = a_value as Int | ||||
| 		self.ForcePageReset() | ||||
| 	elseIf a_option == OptionWardrobeSlider[8] | ||||
| 		ArmorShapeFlag[8] = a_value as Int | ||||
| 		self.ForcePageReset() | ||||
| 	elseIf a_option == OptionWardrobeSlider[9] | ||||
| 		ArmorShapeFlag[9] = a_value as Int | ||||
| 		self.ForcePageReset() | ||||
| 	endIf | ||||
| endFunction | ||||
| 
 | ||||
| function SetBodyShapeName() | ||||
| 
 | ||||
| 	BodyShapeName = new String[3] | ||||
| 	BodyShapeName[0] = "Default" | ||||
| 	BodyShapeName[1] = "3BAv2" | ||||
| 	BodyShapeName[2] = "BHUNP" | ||||
| endFunction | ||||
| 
 | ||||
| function OnOptionSelect(Int a_option) | ||||
| 
 | ||||
| 	if a_option == OptionShape[0] | ||||
| 		BodyChangeShapeFlag = 0 | ||||
| 		self.UpdateShapeSelection() | ||||
| 		IchirouBodyChangeSpell.Cast(game.GetPlayer() as objectreference, none) | ||||
| 	elseIf a_option == OptionShape[1] | ||||
| 		BodyChangeShapeFlag = 1 | ||||
| 		self.UpdateShapeSelection() | ||||
| 		IchirouBodyChangeSpell.Cast(game.GetPlayer() as objectreference, none) | ||||
| 	elseIf a_option == OptionShape[2] | ||||
| 		BodyChangeShapeFlag = 2 | ||||
| 		self.UpdateShapeSelection() | ||||
| 		IchirouBodyChangeSpell.Cast(game.GetPlayer() as objectreference, none) | ||||
| 	elseIf a_option == OptionBodyShapeRegenerate | ||||
| 		self.SetOptionFlags(OptionBodyShapeRegenerate, self.OPTION_FLAG_DISABLED, false) | ||||
| 		IchirouBodyChangeSpell.Cast(game.GetPlayer() as objectreference, none) | ||||
| 	elseIf a_option == OptionResetOrigin | ||||
| 		self.SetOptionFlags(OptionResetOrigin, self.OPTION_FLAG_DISABLED, false) | ||||
| 		self.GetPlayerOriginalSet() | ||||
| 	elseIf a_option == OptionAddCurrentArmor | ||||
| 		self.SetOptionFlags(OptionAddCurrentArmor, self.OPTION_FLAG_DISABLED, false) | ||||
| 		self.AddArmorToList() | ||||
| 	elseIf a_option == ToggleWardrobeEnable | ||||
| 		IsWardrobeCheck = !IsWardrobeCheck | ||||
| 		self.SetToggleOptionValue(ToggleWardrobeEnable, IsWardrobeCheck, false) | ||||
| 	elseIf a_option == OptionClearUpWardrobe | ||||
| 		self.ClearUpWardrobe() | ||||
| 	elseIf a_option == OptionWardrobeSlotClear[0] | ||||
| 		self.ClearArmorFromList(0) | ||||
| 	elseIf a_option == OptionWardrobeSlotClear[1] | ||||
| 		self.ClearArmorFromList(1) | ||||
| 	elseIf a_option == OptionWardrobeSlotClear[2] | ||||
| 		self.ClearArmorFromList(2) | ||||
| 	elseIf a_option == OptionWardrobeSlotClear[3] | ||||
| 		self.ClearArmorFromList(3) | ||||
| 	elseIf a_option == OptionWardrobeSlotClear[4] | ||||
| 		self.ClearArmorFromList(4) | ||||
| 	elseIf a_option == OptionWardrobeSlotClear[5] | ||||
| 		self.ClearArmorFromList(5) | ||||
| 	elseIf a_option == OptionWardrobeSlotClear[6] | ||||
| 		self.ClearArmorFromList(6) | ||||
| 	elseIf a_option == OptionWardrobeSlotClear[7] | ||||
| 		self.ClearArmorFromList(7) | ||||
| 	elseIf a_option == OptionWardrobeSlotClear[8] | ||||
| 		self.ClearArmorFromList(8) | ||||
| 	elseIf a_option == OptionWardrobeSlotClear[9] | ||||
| 		self.ClearArmorFromList(9) | ||||
| 	endIf | ||||
| endFunction | ||||
| 
 | ||||
| function UpdateShapeSelection() | ||||
| 
 | ||||
| 	IsShapeChange = true | ||||
| 	self.EnableFlagUpdate() | ||||
| 	Int k = 0 | ||||
| 	while k < 10 | ||||
| 		self.SetOptionFlags(OptionShape[k], ShapeEnableFlag[k], false) | ||||
| 		k += 1 | ||||
| 	endWhile | ||||
| 	self.SetTextOptionValue(OptionBodyShapeCurrent, BodyShapeName[BodyChangeShapeFlag], false) | ||||
| endFunction | ||||
| 
 | ||||
| ; Skipped compiler generated GotoState | ||||
| 
 | ||||
| Bool function PlayerRaceAllow() | ||||
| 
 | ||||
| 	Race PlayerRace = game.GetPlayer().GetRace() | ||||
| 	String RaceName = PlayerRace.GetName() | ||||
| 	if RaceName == "Argonian" || RaceName == "Khajiit" || RaceName == "Werewolf" || RaceName == "Vampire Lord" | ||||
| 		return false | ||||
| 	elseIf IchirouBanRaceList.Find(PlayerRace as form) == -1 | ||||
| 		return true | ||||
| 	else | ||||
| 		return false | ||||
| 	endIf | ||||
| endFunction | ||||
| 
 | ||||
| function OnConfigInit() | ||||
| 
 | ||||
| 	ModName = "Ichirou Race Menu" | ||||
| 	Pages = new String[2] | ||||
| 	Pages[0] = "Ichirou Body" | ||||
| 	Pages[1] = "Ichirou Wardrobe" | ||||
| 	BodyChangeShapeFlag = 0 | ||||
| 	ArmorShapeFlag = new Int[10] | ||||
| 	ArmorShapeFlag[0] = 0 | ||||
| 	ArmorShapeFlag[1] = 0 | ||||
| 	ArmorShapeFlag[2] = 0 | ||||
| 	ArmorShapeFlag[3] = 0 | ||||
| 	ArmorShapeFlag[4] = 0 | ||||
| 	ArmorShapeFlag[5] = 0 | ||||
| 	ArmorShapeFlag[6] = 0 | ||||
| 	ArmorShapeFlag[7] = 0 | ||||
| 	ArmorShapeFlag[8] = 0 | ||||
| 	ArmorShapeFlag[9] = 0 | ||||
| endFunction | ||||
| 
 | ||||
| Bool function PlayerSexAllow() | ||||
| 
 | ||||
| 	if game.GetPlayer().GetActorBase().GetSex() | ||||
| 		return true | ||||
| 	else | ||||
| 		return false | ||||
| 	endIf | ||||
| endFunction | ||||
|  | @ -0,0 +1,40 @@ | |||
| scriptName IchirouWardrobe extends ReferenceAlias | ||||
| 
 | ||||
| ;-- Properties -------------------------------------- | ||||
| ichirouracemcmmenu property IchirouRaceMCMMenuInstance auto | ||||
| formlist property IchirouBodyWardrobe auto | ||||
| spell property IchirouBodyChangeSpell auto | ||||
| 
 | ||||
| ;-- Variables --------------------------------------- | ||||
| Bool IsBeast = false | ||||
| 
 | ||||
| ;-- Functions --------------------------------------- | ||||
| 
 | ||||
| ; Skipped compiler generated GotoState | ||||
| 
 | ||||
| ; Skipped compiler generated GetState | ||||
| 
 | ||||
| function OnObjectEquipped(Form akBaseObject, objectreference akReference) | ||||
| 
 | ||||
| 	Int Index = IchirouBodyWardrobe.Find(akBaseObject) | ||||
| 	if Index != -1 && IchirouRaceMCMMenuInstance.IsWardrobeEnable | ||||
| 		if IchirouRaceMCMMenuInstance.BodyChangeShapeFlag != IchirouRaceMCMMenuInstance.ArmorShapeFlag[Index] | ||||
| 			IchirouRaceMCMMenuInstance.BodyChangeShapeFlag = IchirouRaceMCMMenuInstance.ArmorShapeFlag[Index] | ||||
| 			IchirouBodyChangeSpell.Cast(game.GetPlayer() as objectreference, none) | ||||
| 		endIf | ||||
| 	endIf | ||||
| endFunction | ||||
| 
 | ||||
| function OnRaceSwitchComplete() | ||||
| 
 | ||||
| 	String RaceName = game.GetPlayer().getrace().GetName() | ||||
| 	if RaceName == "Argonian" || RaceName == "Khajiit" || RaceName == "Werewolf" || RaceName == "Vampire Lord" | ||||
| 		game.GetPlayer().GetActorBase().SetSkin(none) | ||||
| 		game.GetPlayer().QueueNiNodeUpdate() | ||||
| 		IsBeast = true | ||||
| 	elseIf IsBeast | ||||
| 		utility.Wait(1 as Float) | ||||
| 		IchirouBodyChangeSpell.Cast(game.GetPlayer() as objectreference, none) | ||||
| 		IsBeast = false | ||||
| 	endIf | ||||
| endFunction | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Souichirou Nagai
						Souichirou Nagai