Jump to content

Variable holding status of the wheel?


Fishybob

Recommended Posts

Hi im could use a lil help with this.

i want to turn the wait topic on my NPC's Followers quest in to a informative multi option menu.

i basicly have the whole thing set up alreddy and it works with the wheel

it will inform the player of the last used position and give options acordanly in dialogue.

In the wheel it wil just pick the last possition and inform the player what that whas.

 

problem:

I would have to change the wait topic to non top lvl and use my WaitMenu in sted.

sinds i dont wanne mes with the vanilla followers topics i ofc do not want to do that.

 

I could merge my Wait menu with the FollowrsWait topick keeping it competible.

 

but than i'd have to use the same reaction for the wheel and the dialogue.

 

if i could check fore a Variable witch is high or low togeter with the wheel that would simplefy things

 

anyone know of such a var?

Link to comment
Share on other sites

I don't really understand your problem but you can put your FollowersWait info into your own quest. It doesn't have to be in VNPCFollowers. It's the topic that's special, not the quest. I don't know if putting it as top level in your own quest will carry over to the other quest, however. That'd be one thing to try.
Link to comment
Share on other sites

If you want to launch a menu when a wheel button is clicked, you can create a quest with your menu script in it. then in the button result script for your companion, start the quest when required. I did this with a couple of the wheel buttons in my Wendy Gilbert mod.

Result script:

ResetQuest RHKWendyWheelAGMenu

StartQuest RHKWendyWheelAGMenu

 

scn RHKWendyWheelAGMenuQuestScript



short iAwaitingInput
short iButtonPressed
short iMessageToShow
short iMessageShown
short iMenuInit
short iMenuChoice		;used to carry out selection in gamemode
short iLeaveMenu
;Aggro mode flags
short ishootOnsight
short iWaitPlayerShoot
short iWaitPlayerHit
short iWaitEnemyClose
short iDontFight

;Call with ResetQuest, then StartQuest in the aggression wheel button result script

BEGIN MenuMode 1075		;wheel selections. Then applied in the gamemode block

		set RHKWendyREF.iPassiveSuspended to 0
		set RHKWendyTK.iGhostFlag to 0


		if (MenuMode 1001)
		else

			if (iMenuInit)
			else
				set iAwaitingInput to 0
				set iButtonPressed to 0
				set iMessageShown to 0
				set iMenuInit to 1
				set iLeaveMenu to 0
				set iMessageToShow to 1
			endif
			
			if (RHKWendyCB.iPassiveFlag == 0)
				set ishootOnsight to 1
			elseif (RHKWendyCB.iPassiveFlag == 1)
				set iWaitPlayerShoot to 1
			elseif (RHKWendyCB.iPassiveFlag == 2)
				set iWaitPlayerHit to 1
			elseif (RHKWendyCB.iPassiveFlag == 3)
				set iWaitEnemyClose to 1
			elseif (RHKWendyCB.iPassiveFlag == 4)
				set iDontFight to 1
			endif
			

			if (iMessageShown)
			else	
				if (iMessageToShow == 1)
					ShowMessage RHKWendyWheelPSVAggroMSG, ishootOnsight, iWaitPlayerShoot, iWaitPlayerHit, iWaitEnemyClose, iDontFight
					set iMessageShown to 1
					set iAwaitingInput to 1
				endif
			endif
			
			if (iAwaitingInput)
				set iButtonPressed to GetButtonPressed
				if (iButtonPressed > -1)
					set iAwaitingInput to 0
					
					if (iMessageShown == 1)	
						if (iButtonPressed == 0)		;Attack on sight
							set RHKWendyCB.iPassiveMode to 0
							set RHKWendyCB.iPassiveFlag to 0
							set iMenuChoice to 1
						elseif (iButtonPressed == 1)	;Wait till player shoot
							set RHKWendyCB.iPassiveMode to 1
							set RHKWendyCB.iPassiveFlag to 1
							set iMenuChoice to 2
						elseif (iButtonPressed == 2)	;Wait till player hit
							set RHKWendyCB.iPassiveMode to 1
							set RHKWendyCB.iPassiveFlag to 2
							set iMenuChoice to 3
						elseif (iButtonPressed == 3)	;Wait till enemy close
							set RHKWendyCB.iPassiveMode to 1
							set RHKWendyCB.iPassiveFlag to 3
							set iMenuChoice to 4
						elseif (iButtonPressed == 4)	;Don't fight at all
							set RHKWendyCB.iPassiveMode to 1
							set RHKWendyCB.iPassiveFlag to 4
							set iMenuChoice to 5
						endif
					endif
				endif
			endif
			
		endif
		
END

BEGIN GameMode

		if (MenuMode)
		else

			if (iMenuChoice == 1)		;Attack on sight
				set RHKWendyREF.FollowerSwitchAggressive to 1
				set RHKWendyCB.iSwitchAggro to 1
				set RHKWendyCB.iPassiveMode to 0
				set RHKWendyCB.iPassiveFlag to 0
				ResetQuest RHKWendyPSV
				if (RHKNvseFlag)
					con_SetGameSetting sPickpocket "Pickpocket"
				endif
				RHKWendyREF.SetPlayerTeammate 1
				RHKWendyREF.SetGhost 0
				RHKWendyREF.SetForceSneak 0
				RHKWendyREF.SetAV Assistance 1
				RHKWendyREF.SetAv Confidence 4
				RHKWendyREF.SetAV Aggression RHKWendyCB.iCBAggression
				set iLeaveMenu to 1
			elseif (iMenuChoice == 2)	;Wait till player shoot
				set RHKWendyREF.FollowerSwitchAggressive to 0
				set RHKWendyCB.iSwitchAggro to 0
				set RHKWendyCB.iPassiveMode to 1
				set RHKWendyCB.iPassiveFlag to 1
				ResetQuest RHKWendyPSV
				StartQuest RHKWendyPSV
				set iLeaveMenu to 1
			elseif (iMenuChoice == 3)	;Wait till player hit
				set RHKWendyREF.FollowerSwitchAggressive to 0
				set RHKWendyCB.iSwitchAggro to 0
				set RHKWendyCB.iPassiveMode to 1
				set RHKWendyCB.iPassiveFlag to 2
				ResetQuest RHKWendyPSV
				set RHKWendyPSV.iPlayerHealth to Player.GetAV Health
				set RHKWendyPSV.iPlayerHealthPrevious to RHKWendyPSV.iPlayerHealth
				set RHKWendyPSV.fPlayerHealthPerc to Player.GetHealthPercentage
				StartQuest RHKWendyPSV
				set iLeaveMenu to 1
			elseif (iMenuChoice == 4)	;Wait till enemy close
				set RHKWendyREF.FollowerSwitchAggressive to 0
				set RHKWendyCB.iSwitchAggro to 0
				set RHKWendyCB.iPassiveMode to 1
				set RHKWendyCB.iPassiveFlag to 3
				ResetQuest RHKWendyPSV
				StartQuest RHKWendyPSV
				set iLeaveMenu to 1
			elseif (iMenuChoice == 5)	;Don't fight
				set RHKWendyREF.FollowerSwitchAggressive to 0
				set RHKWendyCB.iSwitchAggro to 0
				set RHKWendyCB.iPassiveMode to 1
				set RHKWendyCB.iPassiveFlag to 4
				ResetQuest RHKWendyPSV
				StartQuest RHKWendyPSV
				set iLeaveMenu to 1
			endif
			
			
			if (iLeaveMenu)
				set iLeaveMenu to 0
				set iMenuChoice to 0
				StopQuest RHKWendyWheelAGMenu
			endif

		endif

END				

Link to comment
Share on other sites

Hi thx for your responce but i dont think the situation is clear

 

right nou the wheel will select the last selected option in the dialogue

and tel the player what that was.

 

My npc is has a followers quest witch is exact the same as the originall VNPC.

so if i set my wait topic to non top level it wil be changed for all vanilla guy's,

 

yup i used the same topics.

 

resulting in the problem abouve i wish i could show you the construction but it invoulves sevral topicks each with own result comands.

 

Uhm side note here if you find it wil resemble your construction to much or anny you know of here ofc i will only use it fore me :)

 

 

thx again fore your quick resp :)

 

EDIT: I just checked Wendy is actualy the source of insperation :) only i want to make a version witch will inform you of your last desision and give you a option acordanly

Edited by Fishybob
Link to comment
Share on other sites

Solved :thumbsup:

How? the topics in the Followers quest can only be active during dialogue so by adding a responce script command witch sets a var

witch i could call "WheelHot", to the hired topic(1) and the Greeting topic (0).

now my responces can check witch of them is needit; GetScriptVar MyNpcREF.WheelHot == 0/1

so whoever can make sence of my jiberish hope this helps you to.

 

Thanks fore pointing that out.

Edited by Fishybob
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...