mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Add sample Papyrus script
This is the metaquest script from one of my own mods.
This commit is contained in:
		
							
								
								
									
										120
									
								
								samples/Papyrus/vSCM_MetaQuestScript.psc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										120
									
								
								samples/Papyrus/vSCM_MetaQuestScript.psc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,120 @@ | |||||||
|  | Scriptname vSCM_MetaQuestScript extends Quest   | ||||||
|  | {Do initialization and track variables for scripts} | ||||||
|  |  | ||||||
|  | ;--=== Imports ===-- | ||||||
|  |  | ||||||
|  | Import Utility | ||||||
|  | Import Game | ||||||
|  |  | ||||||
|  | ;--=== Properties ===-- | ||||||
|  |  | ||||||
|  | Actor Property PlayerRef Auto | ||||||
|  |  | ||||||
|  | Float Property ModVersion Auto Hidden | ||||||
|  |  | ||||||
|  | String Property ModName = "Smarter Combat Music" Auto Hidden | ||||||
|  |  | ||||||
|  | Message Property vSCM_ModLoadedMSG Auto | ||||||
|  | Message Property vSCM_ModUpdatedMSG Auto | ||||||
|  |  | ||||||
|  | ;--=== Variables ===-- | ||||||
|  |  | ||||||
|  | Float _CurrentVersion | ||||||
|  | String _sCurrentVersion | ||||||
|  |  | ||||||
|  | Bool _Running | ||||||
|  |  | ||||||
|  | Float _ScriptLatency | ||||||
|  | Float _StartTime | ||||||
|  | Float _EndTime | ||||||
|  |  | ||||||
|  | ;--=== Events ===-- | ||||||
|  |  | ||||||
|  | Event OnInit() | ||||||
|  | 	If ModVersion == 0 | ||||||
|  | 		DoUpkeep(True) | ||||||
|  | 	EndIf | ||||||
|  | EndEvent | ||||||
|  |  | ||||||
|  | Event OnReset() | ||||||
|  | 	Debug.Trace("SCM: Metaquest event: OnReset") | ||||||
|  | EndEvent | ||||||
|  |  | ||||||
|  | Event OnGameReloaded() | ||||||
|  | 	Debug.Trace("SCM: Metaquest event: OnGameReloaded") | ||||||
|  | EndEvent | ||||||
|  |  | ||||||
|  | ;--=== Functions ===-- | ||||||
|  |  | ||||||
|  | Function DoUpkeep(Bool DelayedStart = True) | ||||||
|  | 	;FIXME: CHANGE THIS WHEN UPDATING! | ||||||
|  | 	_CurrentVersion = 0.01 | ||||||
|  | 	_sCurrentVersion = GetVersionString(_CurrentVersion) | ||||||
|  | 	String sErrorMessage | ||||||
|  | 	If DelayedStart | ||||||
|  | 		Wait(RandomFloat(2,4)) | ||||||
|  | 	EndIf | ||||||
|  | 	Debug.Trace("SCM: " + ModName) | ||||||
|  | 	Debug.Trace("SCM: Performing upkeep...") | ||||||
|  | 	Debug.Trace("SCM: Loaded version is " + GetVersionString(ModVersion) + ", Current version is " + _sCurrentVersion) | ||||||
|  | 	If ModVersion == 0 | ||||||
|  | 		Debug.Trace("SCM: Newly installed, doing initialization...") | ||||||
|  | 		DoInit() | ||||||
|  | 		If ModVersion == _CurrentVersion | ||||||
|  | 			Debug.Trace("SCM: Initialization succeeded.") | ||||||
|  | 		Else | ||||||
|  | 			Debug.Trace("SCM: WARNING! Initialization had a problem!") | ||||||
|  | 		EndIf | ||||||
|  | 	ElseIf ModVersion < _CurrentVersion | ||||||
|  | 		Debug.Trace("SCM: Installed version is older. Starting the upgrade...") | ||||||
|  | 		DoUpgrade() | ||||||
|  | 		If ModVersion != _CurrentVersion | ||||||
|  | 			Debug.Trace("SCM: WARNING! Upgrade failed!") | ||||||
|  | 			Debug.MessageBox("WARNING! " + ModName + " upgrade failed for some reason. You should report this to the mod author.") | ||||||
|  | 		EndIf | ||||||
|  | 		Debug.Trace("SCM: Upgraded to " + _CurrentVersion) | ||||||
|  | 		vSCM_ModUpdatedMSG.Show(_CurrentVersion) | ||||||
|  | 	Else | ||||||
|  | 		Debug.Trace("SCM: Loaded, no updates.") | ||||||
|  | 		;CheckForOrphans() | ||||||
|  | 	EndIf | ||||||
|  | 	CheckForExtras() | ||||||
|  | 	UpdateConfig() | ||||||
|  | 	Debug.Trace("SCM: Upkeep complete!") | ||||||
|  | EndFunction | ||||||
|  |  | ||||||
|  | Function DoInit() | ||||||
|  | 	Debug.Trace("SCM: Initializing...") | ||||||
|  | 	_Running = True | ||||||
|  | 	ModVersion = _CurrentVersion | ||||||
|  | 	vSCM_ModLoadedMSG.Show(_CurrentVersion) | ||||||
|  | EndFunction | ||||||
|  |  | ||||||
|  | Function DoUpgrade() | ||||||
|  | 	_Running = False | ||||||
|  | 	If ModVersion < 0.01 | ||||||
|  | 		Debug.Trace("SCM: Upgrading to 0.01...") | ||||||
|  | 		ModVersion = 0.01 | ||||||
|  | 	EndIf | ||||||
|  | 	_Running = True | ||||||
|  | 	Debug.Trace("SCM: Upgrade complete!") | ||||||
|  | EndFunction | ||||||
|  |  | ||||||
|  | Function UpdateConfig() | ||||||
|  | 	Debug.Trace("SCM: Updating configuration...") | ||||||
|  |  | ||||||
|  | 	Debug.Trace("SCM: Updated configuration values, some scripts may update in the background!") | ||||||
|  | EndFunction | ||||||
|  |  | ||||||
|  | String Function GetVersionString(Float fVersion) | ||||||
|  | 	Int Major = Math.Floor(fVersion) as Int | ||||||
|  | 	Int Minor = ((fVersion - (Major as Float)) * 100.0) as Int | ||||||
|  | 	If Minor < 10 | ||||||
|  | 		Return Major + ".0" + Minor | ||||||
|  | 	Else | ||||||
|  | 		Return Major + "." + Minor | ||||||
|  | 	EndIf | ||||||
|  | EndFunction | ||||||
|  |  | ||||||
|  | Function CheckForExtras() | ||||||
|  | EndFunction | ||||||
		Reference in New Issue
	
	Block a user