Difference between revisions of "User talk:Lisselli"

From the CreationKit Wiki
Jump to navigation Jump to search
imported>Lisselli
imported>Lisselli
Line 2: Line 2:


<source lang="papyrus">
<source lang="papyrus">
Scriptname SimpleTestScript extends ObjectReference 
Actor property PlayerRef auto
Message property SimpleMessage auto
Float CurrentPlayerLevel
Int iCount
Bool bLockLevel = true
Event OnRead()
Menu()
EndEvent
Function Menu(Int aiButton=0)
aiButton = SimpleMessage.Show()
; before doing anything we need to check the player's level for any level ups.
if (CurrentPlayerLevel != 0)
if CurrentPlayerLevel < PlayerRef.GetLevel()
; Unlock
bLocklevel = false
; reset iCount
iCount = 0
endif
endif
if aiButton == 0 ; Advance skill.
AdvanceSkillEx("Destruction", 450.0, 5)
elseif aiButton == 1 ; Cancel.
return
endif
EndFunction
Function AdvanceSkillEx(String asSkillName, Float afValue, Int aiClampValue=0)
Function AdvanceSkillEx(String asSkillName, Float afValue, Int aiClampValue=0)
if (bLockLevel == true)
if (bLockLevel == true)
Line 23: Line 55:
endif
endif
EndFunction
EndFunction
</source>
</source>

Revision as of 15:01, 6 November 2016

Sandbox Page for when I need to post code on the forums. Because it doesn't allow indention..

Scriptname SimpleTestScript extends ObjectReference  

Actor property PlayerRef auto
Message property SimpleMessage auto

Float CurrentPlayerLevel
Int iCount
Bool bLockLevel = true


Event OnRead()
	Menu()
EndEvent

Function Menu(Int aiButton=0)
	aiButton = SimpleMessage.Show()
	; before doing anything we need to check the player's level for any level ups.
	if (CurrentPlayerLevel != 0)
		if CurrentPlayerLevel < PlayerRef.GetLevel()
			; Unlock
			bLocklevel = false
			; reset iCount
			iCount = 0
		endif
	endif
	if aiButton == 0 ; Advance skill.
		AdvanceSkillEx("Destruction", 450.0, 5)
	elseif aiButton == 1 ; Cancel.
		return
	endif
EndFunction

Function AdvanceSkillEx(String asSkillName, Float afValue, Int aiClampValue=0)
	if (bLockLevel == true)
		; Let's say Player is level 50. This variable will store that.
		CurrentPlayerLevel = PlayerRef.GetLevel()
		debug.notification("CurrentPlayerLevel: " +CurrentPlayerLevel)
		; Lock this level so its not updated, UNLESS the player levels up and becomes higher than this value.
	else
		CurrentPlayerLevel = PlayerRef.GetLevel()
		bLockLevel = true
	endif

	;If the player is still level 50. Keep counting the times advance skill was called.
	if CurrentPlayerLevel == PlayerRef.GetLevel()
		if iCount != aiClampValue
			Game.AdvanceSkill(asSkillName, afValue)
			iCount += 1
			debug.notification("iCount: " +iCount)
			; Everytime advanceskill  is called, iCount goes up until it reaches the clamp value.
		endif
	endif
EndFunction