What the hell is going on!

Post » Sat May 28, 2011 7:14 pm

Okay, i have this script.

ref crosshairref basefloat fquestdelaytimebegin gamemode	set fquestdelaytime to 0.01	if ((player.isincombat == 1) && (player.getequippedobject 16 == 0))				messagebox "test1"		if (OnControlDown 5 == 1)			set crosshair to getcrosshairref			if (crosshair.isweapon == 1)				set base to crosshair.getbaseobject				player.equipitem2ns base			endif		endif	endifend


The problem is that its just not running. The messagebox i have in there will not fire...even though its mean to if im in combat with fists out...and here another weird thing, if i write it like so:
	if (player.isincombat == 1)		if (player.getequippedobject 16 == 0)


Then it does work, but the next if statement doesnt.....any ideas?
User avatar
Amiee Kent
 
Posts: 3447
Joined: Thu Jun 15, 2006 2:25 pm

Post » Sat May 28, 2011 7:03 pm




I'm thinking activating the Object removes it from the world faster then GetCrossHairRef can catch it -> your already running a gamemode block every frame might as well run the getcrosshairref every second get the weaponref and baseobjectref and in the next frame check to see if the weaponref still exists in the game world -> if not then run the equip section but only if your char has the item or a version of it at least that way the game does not try to equip something that while the chance is very small but an NPC may have picked up the weapon.

Give this a try see if it works.

Ref CrosshairRef BaseFloat fQuestDelayTimeBegin GameMode	If Player.IsInCombat == 0		; for effeciency so the script delay is not set to 0.001 while not in combat		Return	Else		set fquestdelaytime to 0.01		If Crosshair				; Crosshair found a Weapon Ref			If Crosshair.IsFormValid	; Weapon Still exists in the game world so reset				Set Crosshair to 0			Else				; Weapon no longer in the game world				If Player.GetItemCount Base > 0					Player.EquipItem2ns Base				Else					Set Crosshair to 0				Endif			Endif		Else			If player.getequippedobject 16 == 0	; Player is currently using H2H, Maybe Dropped Weapon ?				Messagebox "test1"				Set Crosshair to GetCrossHairRef				If Crosshair == 0		; No Object at Crosshair					Return				Elseif Crosshair.IsWeapon == 0	; Check to make sure Ref is a Weapon					Return				Else				; If Ref is a Weapon Get Base Object Ref					Set Base to Crosshair.GetBaseObject				Endif			Endif		Endif	EndifEnd

User avatar
Sophie Payne
 
Posts: 3377
Joined: Thu Dec 07, 2006 6:49 am

Post » Sat May 28, 2011 12:19 pm

The problem is currently that is will never even go to look at the crosshair....that first if statement never returns true.
User avatar
Skivs
 
Posts: 3550
Joined: Sat Dec 01, 2007 10:06 pm

Post » Sat May 28, 2011 7:22 pm

The problem is currently that is will never even go to look at the crosshair....that first if statement never returns true.


forgot about that ! little problem with IsInCombat -> give IsActorDetected a try it will return true for just rampaging about town but will also return true when in combat -> only prolem is will it return true for companions vs the player...
User avatar
vanuza
 
Posts: 3522
Joined: Fri Sep 22, 2006 11:14 pm

Post » Sat May 28, 2011 6:50 pm

Okay, i have this script.

ref crosshairref basefloat fquestdelaytimebegin gamemode	set fquestdelaytime to 0.01	if ((player.isincombat == 1) && (player.getequippedobject 16 == 0))				messagebox "test1"		if (OnControlDown 5 == 1)			set crosshair to getcrosshairref			if (crosshair.isweapon == 1)				set base to crosshair.getbaseobject				player.equipitem2ns base			endif		endif	endifend


The problem is that its just not running. The messagebox i have in there will not fire...even though its mean to if im in combat with fists out...and here another weird thing, if i write it like so:
	if (player.isincombat == 1)		if (player.getequippedobject 16 == 0)


Then it does work, but the next if statement doesnt.....any ideas?
EDIT : try
if ( OnControlDown 5 )

also in SS's script - you probably should 0 again fquestdelaytime if player not in combat
User avatar
Rowena
 
Posts: 3471
Joined: Sun Nov 05, 2006 11:40 am

Post » Sat May 28, 2011 2:21 pm

I think the reason is your trying to equip the object on the same frame :
Spoiler
scn UDUNtestDaMAgeOnControlDownref crosshairref basefloat fquestdelaytimebegin gamemode	set fquestdelaytime to 0.01	set base to player.getequippedobject 16	printc "base : %i" base   ; 0	if (player.isincombat == 1)		printc "combat"   ; indeed		if (player.getequippedobject 16 == 0)			set base to player.getequippedobject 16			printc "if getequiped object base : %i" base   ; 0			message "combat + equiped"			if (OnControlDown 5)				printc "you 'll see me but the equip commands won't run"				stopquest UUNquestTest				set crosshair to getcrosshairref				printc "this is normal : %i" crosshair				if (crosshair.isweapon == 1)					set base to crosshair.getbaseobject					player.equipitem2ns base				endif			endif		endif	endifend
Try waiting a frame or two between player getting the weapon and equipping it - check the equip in the wiki
As for why the && not working I think it's worth asking in the OBSE thread
also in SS's script - you probably should 0 again fquestdelaytime if player not in combat
SaidenStorm's script is better formatted btw

EDIT : on SS's script - isFormValid will return true on a persistent reference - probably in all non dynamic references (while loaded) - use HasBeenPickedUp or IsRefDeleted instead
User avatar
Jordan Moreno
 
Posts: 3462
Joined: Thu May 10, 2007 4:47 pm

Post » Sat May 28, 2011 1:54 pm

Basically SaidenStorm's script with a couple typos removed works fine but not always :
Spoiler
scn UDUNtestDaMAgeOnControlDownRef CrosshairRef BaseFloat fQuestDelayTimeBegin GameMode	If Player.IsInCombat == 0		; for effeciency so the script delay is not set to 0.001 while not in combat		Return	Else		set fquestdelaytime to 0.1		If Crosshair				; Crosshair found a Weapon Ref			If IsRefDeleted	Crosshair == 0; Weapon Still exists in the game world so reset				Set Crosshair to 0			Else				; Weapon no longer in the game world				If Player.GetItemCount Base > 0					Player.EquipItem2ns Base				Else					Set Crosshair to 0				Endif			Endif		Else			If player.getequippedobject 16 == 0	; Player is currently using H2H, Maybe Dropped Weapon ?				; Messagebox "test1"				Set Crosshair to GetCrossHairRef				If Crosshair == 0		; No Object at Crosshair					Return				Elseif Crosshair.IsWeapon == 0	; Check to make sure Ref is a Weapon					Return				Else				; If Ref is a Weapon Get Base Object Ref					Set Base to Crosshair.GetBaseObject				Endif			Endif		Endif	EndifEnd

Trying to find out why it doesn't work all the time I wrote this - it succeeds a trifle more often than SS's code but it is very ugly:
Spoiler
scn UDUNtestDaMAgeOnControlDownRef CrosshairRef BaseFloat fQuestDelayTimeshort frameshort MAXFRAME	; not usedshort iBegin GameModeIf Player.IsInCombat == 0	set fquestdelaytime to 0	set I to 0	ReturnElse	set fquestdelaytime to 0.01	If Base	; || (frame)		if (OnControlDown 5) || (frame)			printc "OnControlDown run, frame : %g" frame			IF FRAME == 0				SET FRAME TO 1				RETURN			ENDIF			IF FRAME == 1				SET FRAME TO 2				RETURN			ENDIF			If (IsRefDeleted Crosshair == 0) || (frame > 3) ; THIS PART FAILS TO RUN !!!!!!! IsRefDeleted returns 0 while OnControlDown returned true - so ref should be deleted				set I to I + 1				printc "IsRefDeleted == 0: %g" i				Set Base to 0				Set frame to 0			Else	; Weapon no longer in the game world				If Player.GetItemCount Base					Player.EquipItem2ns Base					Set Base to 0					PrintC "frame : %g" frame				Else					Set frame to frame + 1				Endif				RETURN			Endif					endif		If player.getequippedobject 16 == 0			Set Crosshair to GetCrossHairRef			If Crosshair == 0				Set Base to 0									Return			Elseif Crosshair.IsWeapon == 0				Set Base to 0				Return			Else				Set Base to Crosshair.GetBaseObject				printc "base : %i" base				message "base : %i" base			Endif		Endif	Else		If player.getequippedobject 16 == 0			Set Crosshair to GetCrossHairRef			If Crosshair == 0				Return			Elseif Crosshair.IsWeapon == 0				Return			Else				Set Base to Crosshair.GetBaseObject				printc "base : %i" base				message "base : %i" base			Endif		Endif	EndifEndifEnd

Seems that IsRefDeleted does not run correctly always
User avatar
sarah
 
Posts: 3430
Joined: Wed Jul 05, 2006 1:53 pm

Post » Sat May 28, 2011 8:33 am

Try this it works most of the time but the OBSE functions for HasBeenPickedUp and IsRefDeleted are very unstable and return false values quite often.

scn 1SSQSAutoReEquipDroppedWeaponsFloat fQuestDelayTimeRef CrosshairRef BaseShort EquipBegin GameMode		If GetGameLoaded		Let fQuestDelayTime := 0.001	Endif	If Player.IsWeaponOut == 0		Return	Else		If Player.GetEquippedObject 16 != 0				; Player using a Weapon, Reset Variables and Return			Set Crosshair to 0			Set Base to 0			Set Equip to 0			Return		Else			If Equip				If Player.GetItemCount Base > 0					PrintC "%n", Base					Player.EquipItem Base;					Player.EquipItem2NS Base				Else					Return				Endif			Else				If Crosshair										; Crosshair found a Weapon Ref					If Crosshair.HasBeenPickedUp		; Weapon no longer in the game world						PrintC "HasBeenPickedUp"						Set Equip to 1					Elseif IsRefDeleted Crosshair			; Weapon no longer in the game world						PrintC "IsRefDeleted"						Set Equip to 1					Else											; Weapon Still exists in the game world so reset						Set Crosshair to 0						Set Base to 0					Endif				Else					Set Crosshair to GetCrossHairRef					If Crosshair == 0							; No Object at Crosshair						Return					Elseif IsWeapon Crosshair				; If Ref is a Weapon Get Base Object Ref						Set Base to Crosshair.GetBaseObject					Else											; Return Ref to 0						Set Crosshair to 0					Endif				Endif			Endif		Endif	EndifEnd

User avatar
Invasion's
 
Posts: 3546
Joined: Fri Aug 18, 2006 6:09 pm

Post » Sat May 28, 2011 9:08 pm

Did not run it but corrected/added some things on paper - will run it and report back - thanks for the interest btw :)
Spoiler
scn 1SSQSAutoReEquipDroppedWeapons	;********** never use a number in the beginning of an eiditorID including scripts !Float fQuestDelayTimeRef CrosshairRef BaseShort Equipshort BaseCountInInventory ;********** instead of using OnControlDown (less elegant though)short frameBegin GameMode		If GetGameLoaded		Let fQuestDelayTime := 0.01	;********** better to keep this for IsInCombat	Endif	If Player.IsWeaponOut == 0	;********** this is a matter of taste :)		Return	Else		If Player.GetEquippedObject 16 != 0				; Player using a Weapon, Reset Variables and Return			Set Crosshair to 0			Set Base to 0			Set Equip to 0			Return		Else			If Equip				If Player.GetItemCount Base > BaseCountInInventory	;********** this can stuck for ever if Equip is not zeroed after some frames - did this					PrintC "%n", Base					Player.EquipItem Base					set Equip to 0	;**********;					Player.EquipItem2NS Base	;********** Why not ?				Elseif frame < 3					let frame += 1				;********** wait for some frames and then set equip to 0					Return				else	;**********					set Equip to 0					set frame to 0				Endif			Else				If Crosshair										; Crosshair found a Weapon Ref					If IsRefDeleted Crosshair			;**********Better check first for delete ref. Also maybe some frames are needed before IsRefDeleted fires 						PrintC "IsRefDeleted"						Set Equip to 1					;**********What if picked up by npc an the player happens to have two same weapons ? Maybe a solution would be to count the baseS in Player's inventory					Elseif Crosshair.HasBeenPickedUp						PrintC "HasBeenPickedUp"						Set Equip to 1					;**********What if picked up by npc an the player happens to have two same weapons ?					Else											; Weapon Still exists in the game world so reset						Set Crosshair to 0						Set Base to 0					Endif				Else					Set Crosshair to GetCrossHairRef					If Crosshair == 0							; No Object at Crosshair						Return					Elseif IsWeapon Crosshair				; If Ref is a Weapon Get Base Object Ref						Set Base to Crosshair.GetBaseObject						set BaseCountInInventory to Player.GetItemCount Base					Else											; Return Ref to 0						Set Crosshair to 0					Endif				Endif			Endif		Endif	EndifEnd

User avatar
Alycia Leann grace
 
Posts: 3539
Joined: Tue Jun 26, 2007 10:07 pm

Post » Sat May 28, 2011 5:25 am

Did not run it but corrected/added some things on paper - will run it and report back - thanks for the interest btw :)


Spoiler
scn 1SSQSAutoReEquipDroppedWeapons	;********** never use a number in the beginning of an eiditorID including scripts !this is false I ALWAYS use 1SS to prefix everything I do, the ONLY problem the game/cs has with using numbers is when they are used on Explicit References and I do it this way on purpose because my Base items I always 1SSItemName and ref names are SSRefName so everything is kept in order.Float fQuestDelayTimeRef CrosshairRef BaseShort Equipshort BaseCountInInventory ;********** instead of using OnControlDown (less elegant though)short frameBegin GameMode		If GetGameLoaded		Let fQuestDelayTime := 0.01	;********** better to keep this for IsInCombatIs In Combat was causing the script to halt so I just removed it until I can get past why.	Endif	If Player.IsWeaponOut == 0	;********** this is a matter of taste :)Keeps script from running while your not even readied to be in combat, otherwise people who play H2H characters will be constantly equiping weapons they do not want.		Return	Else		If Player.GetEquippedObject 16 != 0				; Player using a Weapon, Reset Variables and Return			Set Crosshair to 0			Set Base to 0			Set Equip to 0			Return		Else			If Equip				If Player.GetItemCount Base > BaseCountInInventory	;********** this can stuck for ever if Equip is not zeroed after some frames - did thisdid this on purpose to see if the reason the game was not equiping the weapon was if ecall to equip it was happening to fast.					PrintC "%n", Base					Player.EquipItem Base					set Equip to 0	;**********;					Player.EquipItem2NS Base	;********** Why not ? <- I wanted th MSG.				Elseif frame < 3					let frame += 1				;********** wait for some frames and then set equip to 0					Return				else	;**********					set Equip to 0					set frame to 0				Endif			Else				If Crosshair										; Crosshair found a Weapon Ref					If IsRefDeleted Crosshair			;**********Better check first for delete ref. Also maybe some frames are needed before IsRefDeleted firesMakes zero difference as IsRefDeleted will only ever return true for Dynamic Items and HasBeenPickedUp seems to NEVER return true for Static placed items as they are NOT deleted they are disabled.						PrintC "IsRefDeleted"						Set Equip to 1					;**********What if picked up by npc an the player happens to have two same weapons ? Maybe a solution would be to count the baseS in Player's inventory					Elseif Crosshair.HasBeenPickedUp						PrintC "HasBeenPickedUp"						Set Equip to 1					;**********What if picked up by npc an the player happens to have two same weapons ?never got the scripts far enough to account for NPC's was just tring to get it to actually function for the player first.					Else											; Weapon Still exists in the game world so reset						Set Crosshair to 0						Set Base to 0					Endif				Else					Set Crosshair to GetCrossHairRef					If Crosshair == 0							; No Object at Crosshair						Return					Elseif IsWeapon Crosshair				; If Ref is a Weapon Get Base Object Ref						Set Base to Crosshair.GetBaseObject						set BaseCountInInventory to Player.GetItemCount Base					Else											; Return Ref to 0						Set Crosshair to 0					Endif				Endif			Endif		Endif	EndifEnd

User avatar
Emma Copeland
 
Posts: 3383
Joined: Sat Jul 01, 2006 12:37 am

Post » Sat May 28, 2011 6:22 pm

Spoiler
scn 1SSQSAutoReEquipDroppedWeapons	;********** never use a number in the beginning of an eiditorID including scripts !this is false I ALWAYS use 1SS to prefix everything I do, the ONLY problem the game/cs has with using numbers is when they are used on Explicit References and I do it this way on purpose because my Base items I always 1SSItemName and ref names are SSRefName so everything is kept in order.Float fQuestDelayTimeRef CrosshairRef BaseShort Equipshort BaseCountInInventory ;********** instead of using OnControlDown (less elegant though)short frameBegin GameMode		If GetGameLoaded		Let fQuestDelayTime := 0.01	;********** better to keep this for IsInCombatIs In Combat was causing the script to halt so I just removed it until I can get past why.	Endif	If Player.IsWeaponOut == 0	;********** this is a matter of taste :)Keeps script from running while your not even readied to be in combat, otherwise people who play H2H characters will be constantly equiping weapons they do not want.		Return	Else		If Player.GetEquippedObject 16 != 0				; Player using a Weapon, Reset Variables and Return			Set Crosshair to 0			Set Base to 0			Set Equip to 0			Return		Else			If Equip				If Player.GetItemCount Base > BaseCountInInventory	;********** this can stuck for ever if Equip is not zeroed after some frames - did thisdid this on purpose to see if the reason the game was not equiping the weapon was if ecall to equip it was happening to fast.					PrintC "%n", Base					Player.EquipItem Base					set Equip to 0	;**********;					Player.EquipItem2NS Base	;********** Why not ? <- I wanted th MSG.				Elseif frame < 3					let frame += 1				;********** wait for some frames and then set equip to 0					Return				else	;**********					set Equip to 0					set frame to 0				Endif			Else				If Crosshair										; Crosshair found a Weapon Ref					If IsRefDeleted Crosshair			;**********Better check first for delete ref. Also maybe some frames are needed before IsRefDeleted firesMakes zero difference as IsRefDeleted will only ever return true for Dynamic Items and HasBeenPickedUp seems to NEVER return true for Static placed items as they are NOT deleted they are disabled.						PrintC "IsRefDeleted"						Set Equip to 1					;**********What if picked up by npc an the player happens to have two same weapons ? Maybe a solution would be to count the baseS in Player's inventory					Elseif Crosshair.HasBeenPickedUp						PrintC "HasBeenPickedUp"						Set Equip to 1					;**********What if picked up by npc an the player happens to have two same weapons ?never got the scripts far enough to account for NPC's was just tring to get it to actually function for the player first.					Else											; Weapon Still exists in the game world so reset						Set Crosshair to 0						Set Base to 0					Endif				Else					Set Crosshair to GetCrossHairRef					If Crosshair == 0							; No Object at Crosshair						Return					Elseif IsWeapon Crosshair				; If Ref is a Weapon Get Base Object Ref						Set Base to Crosshair.GetBaseObject						set BaseCountInInventory to Player.GetItemCount Base					Else											; Return Ref to 0						Set Crosshair to 0					Endif				Endif			Endif		Endif	EndifEnd


Points taken :D
Only concerning the difference between HasBeenPickedUp and IsRefDeleted - HasBeenPickedUp http://www.gamesas.com/index.php?/topic/1087872-relz-oblivion-script-extender-obse-0018/page__view__findpost__p__15888458 return true on non dynamic references once picked up (and still non deleted)
Anyhoo - I run the code above and it does not work always (actually most of the time) - I experience some heavy lag at the mo which maybe related. Still the code I posted works most of the time despite the lag
Spoiler
scn UDUNtestDaMAgeOnControlDownRef CrosshairRef BaseFloat fQuestDelayTimeshort frameshort MAXFRAME	; not usedshort iBegin GameMode; If Player.IsInCombat == 0	; set fquestdelaytime to 0	; set I to 0	; Return; Else	set fquestdelaytime to 0.01	If Base	; || (frame)		if (OnControlDown 5) || (frame)			printc "OnControlDown run, frame : %g" frame			IF FRAME == 0				SET FRAME TO 1				RETURN			ENDIF			IF FRAME == 1				SET FRAME TO 2				RETURN			ENDIF			If (IsRefDeleted Crosshair == 0) || (frame > 3) ; THIS PART FAILS TO RUN !!!!!!! IsRefDeleted returns 0 while OnControlDown returned true - so ref should be deleted				set I to I + 1				printc "IsRefDeleted == 0: %g" i				Set Base to 0				Set frame to 0			Else	; Weapon no longer in the game world				If Player.GetItemCount Base					Player.EquipItem2ns Base					Set Base to 0					PrintC "frame : %g" frame				Else					Set frame to frame + 1				Endif				RETURN			Endif					endif		If player.getequippedobject 16 == 0			Set Crosshair to GetCrossHairRef			If Crosshair == 0				Set Base to 0									Return			Elseif Crosshair.IsWeapon == 0				Set Base to 0				Return			Else				Set Base to Crosshair.GetBaseObject				printc "base : %i" base				message "base : %i" base			Endif		Endif	Else		If player.getequippedobject 16 == 0			Set Crosshair to GetCrossHairRef			If Crosshair == 0				Return			Elseif Crosshair.IsWeapon == 0				Return			Else				Set Base to Crosshair.GetBaseObject				printc "base : %i" base				message "base : %i" base			Endif		Endif	Endif; EndifEnd

Not always though :flame:
Check it and see
Maybe we should ask the obse gurus :user:
I test on a clean save etc

Btw some strange thing is that my %i formID messages display as decimal suddenly :confused: (edit - well I guess should be using messageEX)

EIT : my script lacks HasBeenPickUp - I know

Cheers :foodndrink:
User avatar
Music Show
 
Posts: 3512
Joined: Sun Sep 09, 2007 10:53 am

Post » Sat May 28, 2011 4:58 pm



I decided to go a different route and just take a few assumptions in the scripting and the result worked 100% for me for both Dynamic and Static Weapons, script is in debug mode still so currently it only works while not in combat and disables when you are -> I test in a Weapon Shop so I can steal some weapons and drop them !

scn 1SSQSAutoReEquipDroppedWeaponsFloat fQuestDelayTimeRef CrosshairRef BaseShort H2HShort EquipBegin GameMode	;	If Player.IsInCombat == 0							; Disable Effect when not in Combat.	If Player.IsInCombat == 1							; For Easier Testing.		Set fQuestDelayTime to 0		Set Crosshair to 0		Set Base to 0		Set Equip to 0		If Player.GetEquippedObject 16 == 0			; Variable to hold if the Player is a H2H Character to Disable Effect.			Set H2H to 1									; H2H Character.		Else			Set H2H to 0									; Not a H2H Character.		Endif		Return	Else		If H2H			Return		Else			Set fQuestDelayTime to 0.001			If Player.GetEquippedObject 16 != 0		; Player Has a Weapon Equipped -> Return.				Return			Else				If Equip					PrintC "Equip %n", Base					Player.EquipItem Base				; I like the MSG.;					Player.EquipItem2NS Base			; MSG not for everyone !					Set Crosshair to 0					Set Base to 0					Set Equip to 0				Else					If IsControlPressed 5					; Assume that the Player has Picked up the Ref.;					If OnControlDown 5					; Works, but not always IsControlPressed worked 100%.						If Base							Set Equip to 1						Else							Return						Endif					Else						Set Crosshair to GetCrossHairRef						PrintC "Crosshair %n", Crosshair						If Crosshair == 0					; No Object at Crosshair							Return						Elseif IsWeapon Crosshair		; If Ref is a Weapon Get Base Object Ref							Set Base to Crosshair.GetBaseObject							PrintC "Base %n", Base						Else									; Return Ref to 0							Set Crosshair to 0						Endif					Endif				Endif			Endif		Endif	EndifEnd

User avatar
gary lee
 
Posts: 3436
Joined: Tue Jul 03, 2007 7:49 pm

Post » Sat May 28, 2011 6:57 pm

Yes it does work - I had just one case it didn't (out of ~20) and one strange case I got the message "Iron mace equipped on the player" - while the mace was not equipped
Still the problem with the code I posted was - as far I can tell from the printcS - that IsRefDeleted did not run occasionally - OnControlDown seemed to behave OK
I think I will be asking in the OBSE thread for IsRefDeleted - once I clean the (my) code from the fluff (err maybe tomorrow)
As it is, there are some scenarios that may need a call to IsRefDeleted / HasBeenPickedUp - and also the var BaseCountInInventory - to be sure it wasn't the NPC that picked the weapon up (despite the player pressing activate).
Nice indeed talking to you :)

PS : I am using notepad++ with the definitions http://tesnexus.com/downloads/file.php?id=23057 - I find the combo quite adequate, I even made an autocomplete file lol
PS2 : I have made a script that adds shortcuts to the CS - give it a whirl - it makes life in the cs (including the script window http://www.gamesas.com/index.php?/topic/1043222-relzbeta-tes4-cs-hotkeys-including-control-tab-and-toggle-script/page__view__findpost__p__15127130) much easier - links in my sig
User avatar
Sarah Evason
 
Posts: 3507
Joined: Mon Nov 13, 2006 10:47 pm


Return to IV - Oblivion