1.6 -Added SSEdit x, y, and z values to displayed info - Added mcm option to display messageboxes instead of notifications -fixed mcm menu issue
1.5 -MCM menu -Added hot key feature! Pick a key and use in game for a quick location check
1.01 by Jebbalon (please give him kudos) Okay, version 1.01 is ready Will display XYZ cell coordinates as well as xEdit compatible Block and Sub-Block numbers A new power / spell called Where Am I ? can be used to toggle the reporting ON or OFF (a notification will tell you if it is on or not) That's it, seems to work well and I zipped around to check the corners of the map. Then double checked in xEdit to find things, it's kinda nice to have a tool like this when going back and forth between CK, SSEedit and Game.
1.0 - initial release, no frills info given on x,y, and z location
It only reports the block, sub block for xedit when I'm in exteriors but all I want it for is to show me the block and sub block of interior cells so I don't have to open the ck or search all of the sub blocks in xedit, is this intentional? And can a version be made to show the cell block and sub block for interiors?
Is it just my loadorder or whatever. Or are block and subblock no longer displayed?
Edit: Ok. The information just does not work in the Alternate Start cell. In the "real" game world, after using the bed, the block/subblock info is displayed. So everything is fine. :)
Thanks a lot for the cool mod! There is almost nothing to change in it. He's just beautiful!Please make a complete configuration of the value display. So that in the MCM - menu, you could choose which readings to display. Xyz only, NPCs only, or cell coordinates only. Or any of their combinations (just three checkpoints). You don't need to change the rest! :)(I'm writing via google translator, sorry.)
Version 1.9 - Added toggles to MCMenu for XYZ, Cell, NPC count and Trace to Papyrus log - Updated the scripts for the new globals and simplified the code some more
- Interior numbers are now correct. the calculation lines needed to be up one IF level. - Added Trace commands to send a line to the Papyrus Log - Added a Count for NPCs in the cell. Uses SKSE function GetNumRefs( FormType 43 ) this number will include player
the Trace commands and NPC Count are enabled. Will need to add options to MCMenu by adding globals and change them in script to GetValueInt( )
- Will now properly display XYZ coordinates along with CKit compatible Cell X,Y and xEdit compatible Block and SubBlock numbers. - Thanks to Herowynne for pointing out issues. - Pressing the HotKey (set in MCMenu) will bring up the coordinates instantly whether you have it set for continuous or not. - The number display code is now only in the WhereAmI.psc - the menu OnKeyDown just sends update to that script.
Okay, Enjoy! Let us know if anything else comes up
The interior numbers are kinda strange. Like you are still outside (see images from inside Riverwood Inn) In xEdit the numbers are closer to 500 to 2000 not the 40k like outside. So, interiors will display the XYZ but take the numbers with skepticism. I wonder if loading a save indoors would be correct?
The mod prints one line for the Creation Kit x,y,z values, and prints a second line for the xEdit block,subblock.
The second line could be even more useful if it printed the full xEdit info: block,subblock,x,y,z. Then that info could be used directly in xEdit for placing a NPC, or something similar.
I looked at the source code for the script, and I see that the Creation Kit x,y,z values can be multiplied by 4096 to get the xEdit x,y,z values, and so that is what I would do for now — manually multiply the values.
Thanks for responding! And once again, thanks for a very useful mod!
The reasons for separate lines is that the longer the line the smaller the font (for vanilla - not sure if there is mod to change that) The numbers are also displayed with lots of digits making it even longer. (this is forced by game)
The XYZ numbers are same for xEdit or CKit - the block/subblock are to aid in using xEdit which sorts by those.
Hi Jebbalon, thanks for the response! I'm sorry that I did not explain it well.
I made some screenshots to better explain what I am referring to...
The following image shows me using WhereAmI at the Lady Stone.
The following image shows how I multiply the WhereAmI printed xyz values by 4096 to obtain the xEdit xyz values.
The following image shows the Lady Stone's xyz values in xEdit. Note how the Block and SubBlock values match the printed output from WhereAmI, but the xyz values needed the multiply by 4096.
Kicking myself in butt.... Okay... You are correct. The way it is now (with v1.6) is better but - after learning more about stuff since working on this mod.... The CKit numbers should be integers and only X and Y. No Z, it is not used when looking at the Cell Window in CKit. Also, the SSEedit numbers can (and should) be displayed when player is in Interiors. That should work without problems. The CKit cell numbers and block-subblock numbers are what do not work in interiors.
Uploaded a miscellaneous file that is just the whereami script. made the output a little clearer only one message box and removed the Z for cell Let me know what you think also added some pics
this doesn't change the MCMenu script which has output for pushing the button
Thanks for the continued attention on this! I really appreciate it!
I tested version 1.6 with the "1.6script" additions, and here is my feedback:
The addition of the Cell coordinates is great, but I think the calculation is off. I see that the script uses a cast to int, but I think that a floor function call is needed instead of the cast to int, because the cast does not work properly for negative values.
In the screenshot below at the The Lady Stone, the Cell is incorrectly reported as < -7, -13 > but the correct value should be < -8, -14 > which you can see in my SSEEdit screenshot above.
Herowynne, I have no clue how to use the floor function. Never made it past into to Algebra 1. My brain simply refused the input. If you tell me how the equation should look like I am happy to use it. This happened to me with my fast travel mod, and a kind user gave me the fórmula I needed. I am sorry for my math handicap .
edit:
I think I got it?
Spoiler:
Show
Scriptname WhereAmIMenu extends SKI_ConfigBase
int ModActivation bool ModActivationStatus int wherekey int Property WhereKey1 = 39 Auto Hidden float currentX float currentY float currentz
Int BlockX Int BlockY
Int SubX Int SubY ObjectReference Property Hero Auto int displaypop bool displaypopstatus = False
Event OnConfigInit() Pages = New String[1]; for one menu page, 2 for 2 pages, etc Pages[0] = "Options" ; whatever you want to name it EndEvent
Event OnPageReset(String a_page) ;if (a_page == "") ; this line and the next 5 lines are used to display your logo picture for your ; Mod. Graphcis file mustbe a .dds file, example below from my mod ;LoadCustomContent("skyui/sandsoftime.dds", 146, 123) ;return ;else ;UnloadCustomContent() ;endIf SetCursorFillMode(TOP_TO_BOTTOM) ; we start menu on top ; ;lets add a true/false toggle using the variable from your mod FSM_Shalter ;
Okay, added try number 2 for the script. I did it quickly last time using the cast as integer. You are correct, for negative numbers we need to floor it. Like the Block/SubBlock numbers use.
Some trivia. Updated this after three years because i wanted to get coordinates of locations in dungeons. It was not until I was done that i realized you cannot get coordinates in dungeons. The creation kit does not accommodate them. Sigh....
Please, if you can, test 3.1, uploaded at 4:30am. Should be golden. Please test while running from one town to another. then going indoors, then outdoors. then fast travel to see if it still works. I was playing wackamole with the scripts for hours. tired. don't want to jsut release without more testing from you all.
remember the command to turn on debug messages is "set diags to 5" in the console.
as much as i want to release this, i don't want it in the wild if it is not going to work right.
if anyone else can test it and report all feedback is welcome. talking about the fast travel encounter mod in misc files, NOT the where i am mod.
tweaking scripts, will post update soon. do let me know what you find, please. pleae turn on diags. the issue is mod deactivating o rmod activating while just walking.
this was on Fast Travel Consequences and Ambushes RC4-9300-3-1 well i got 2 of the settings books (both the same just double) this was on a save that didn't have fte in it
debug said things like fork not stuck, fork on cell detach ran, player changed cells spell detected, something about inside while loop, on loop completed items left = -1
travelled on foot from whiterun to riverwood (entered sleeping giant while there )then to bfb to secunda's kiss then to bleakwood basin back to whiterun (entered)no ambushes while just walking.
my script latency was bad though ended up doing a check 177ms (about double what i normally have) did some fast travelling and 2 times the black screen didn't come up (that may have been because of the latency)
but the other times worked as it was supposed to got ambushed by bandits 3 times then werewolves (once) fast traveled to riverwood not sure if it was a vampire ambush or a wolf but had a master vampire plus the death hounds and a bunch of wolves, probably a vampire ambush wolves and riverwood go hand in hand.
died a couple of times that's why took so long.
i hope the latency is because of the debug and not something else.
going to test Fast Travel Ambushes and Consequences-9300-3-2 now
151 comments
1.8 golden version see post
1.6
-Added SSEdit x, y, and z values to displayed info
- Added mcm option to display messageboxes instead of notifications
-fixed mcm menu issue
1.5
-MCM menu
-Added hot key feature! Pick a key and use in game for a quick location check
1.01 by Jebbalon (please give him kudos)
Okay, version 1.01 is ready
Will display XYZ cell coordinates as well as xEdit compatible Block and Sub-Block numbers
A new power / spell called Where Am I ? can be used to toggle the reporting ON or OFF (a notification will tell you if it is on or not)
That's it, seems to work well and I zipped around to check the corners of the map. Then double checked in xEdit to find things, it's kinda nice to have a tool like this when going back and forth between CK, SSEedit and Game.
1.0 - initial release, no frills info given on x,y, and z location
Or are block and subblock no longer displayed?
Edit: Ok. The information just does not work in the Alternate Start cell. In the "real" game world, after using the bed, the block/subblock info is displayed. So everything is fine. :)
Version 1.9
- Added toggles to MCMenu for XYZ, Cell, NPC count and Trace to Papyrus log
- Updated the scripts for the new globals and simplified the code some more
Enjoy!
and thank you lister2002
- Interior numbers are now correct. the calculation lines needed to be up one IF level.
- Added Trace commands to send a line to the Papyrus Log
- Added a Count for NPCs in the cell. Uses SKSE function GetNumRefs( FormType 43 ) this number will include player
the Trace commands and NPC Count are enabled. Will need to add options to MCMenu by adding globals and change them in script to GetValueInt( )
Now available!
- Will now properly display XYZ coordinates along with CKit compatible Cell X,Y and xEdit compatible Block and SubBlock numbers.
- Thanks to Herowynne for pointing out issues.
- Pressing the HotKey (set in MCMenu) will bring up the coordinates instantly whether you have it set for continuous or not.
- The number display code is now only in the WhereAmI.psc - the menu OnKeyDown just sends update to that script.
Okay, Enjoy!
Let us know if anything else comes up
Using version 1.8, another screenshot at The Lady Stone, with all values correct:
In xEdit the numbers are closer to 500 to 2000 not the 40k like outside.
So, interiors will display the XYZ but take the numbers with skepticism.
I wonder if loading a save indoors would be correct?
Would it be possible to add the SSEEdit-compatible X, Y, Z values on the notification line with Block and SubBlock ?
The mod prints one line for the Creation Kit x,y,z values, and prints a second line for the xEdit block,subblock.
The second line could be even more useful if it printed the full xEdit info: block,subblock,x,y,z. Then that info could be used directly in xEdit for placing a NPC, or something similar.
I looked at the source code for the script, and I see that the Creation Kit x,y,z values can be multiplied by 4096 to get the xEdit x,y,z values, and so that is what I would do for now — manually multiply the values.
Thanks for responding! And once again, thanks for a very useful mod!
The numbers are also displayed with lots of digits making it even longer. (this is forced by game)
The XYZ numbers are same for xEdit or CKit - the block/subblock are to aid in using xEdit which sorts by those.
So, I'm not sure what you are multiplying ...
I made some screenshots to better explain what I am referring to...
The following image shows me using WhereAmI at the Lady Stone.
The following image shows how I multiply the WhereAmI printed xyz values by 4096 to obtain the xEdit xyz values.
The following image shows the Lady Stone's xyz values in xEdit. Note how the Block and SubBlock values match the printed output from WhereAmI, but the xyz values needed the multiply by 4096.
1.6
-Added SSEdit x, y, and z values to displayed info
- Added mcm option to display messageboxes instead of notifications
-fixed mcm menu issue
You are correct.
The way it is now (with v1.6) is better but - after learning more about stuff since working on this mod....
The CKit numbers should be integers and only X and Y. No Z, it is not used when looking at the Cell Window in CKit.
Also, the SSEedit numbers can (and should) be displayed when player is in Interiors. That should work without problems. The CKit cell numbers and block-subblock numbers are what do not work in interiors.
made the output a little clearer only one message box and removed the Z for cell
Let me know what you think
also added some pics
this doesn't change the MCMenu script which has output for pushing the button
I tested version 1.6 with the "1.6script" additions, and here is my feedback:
The addition of the Cell coordinates is great, but I think the calculation is off. I see that the script uses a cast to int, but I think that a floor function call is needed instead of the cast to int, because the cast does not work properly for negative values.
In the screenshot below at the The Lady Stone, the Cell is incorrectly reported as < -7, -13 > but the correct value should be < -8, -14 > which you can see in my SSEEdit screenshot above.
Thanks again!
edit:
I think I got it?
Scriptname WhereAmIMenu extends SKI_ConfigBase
int ModActivation
bool ModActivationStatus
int wherekey
int Property WhereKey1 = 39 Auto Hidden
float currentX
float currentY
float currentz
Int BlockX
Int BlockY
Int SubX
Int SubY
ObjectReference Property Hero Auto
int displaypop
bool displaypopstatus = False
Event OnConfigInit()
Pages = New String[1]; for one menu page, 2 for 2 pages, etc
Pages[0] = "Options" ; whatever you want to name it
EndEvent
Event OnPageReset(String a_page)
;if (a_page == "") ; this line and the next 5 lines are used to display your logo picture for your
; Mod. Graphcis file mustbe a .dds file, example below from my mod
;LoadCustomContent("skyui/sandsoftime.dds", 146, 123)
;return
;else
;UnloadCustomContent()
;endIf
SetCursorFillMode(TOP_TO_BOTTOM) ; we start menu on top
;
;lets add a true/false toggle using the variable from your mod FSM_Shalter
;
If (a_page == "Options")
AddEmptyOption()
AddHeaderOption("Toggles")
ModActivation = AddToggleOption("Constant Output", ModActivationStatus)
displaypop = AddToggleOption("Display Message Box Instead of Notification", ModActivationStatus)
AddEmptyOption()
AddHeaderOption("Hotkeys")
wherekey = AddKeyMapOption("Key to Display Location", WhereKey1)
EndIf
EndEvent
Event OnOptionDefault(Int a_option) ; TOGGLE
If (a_option == ModActivation)
ModActivationStatus = False
SetToggleOptionValue(a_option, ModActivationStatus)
ReportLocation.setvalueint(0) ; off
EndIf
If (a_option == displaypop)
ModActivationStatus = False
SetToggleOptionValue(a_option, displaypopstatus)
EndIf
EndEvent
Event OnOptionSelect(Int a_option)
If (a_option == ModActivation)
ModActivationStatus = !ModActivationStatus
SetToggleOptionValue(a_option, ModActivationStatus)
If ModActivationStatus== True
ReportLocation.SetValueInt(1)
Else
ReportLocation.SetValueInt(0)
EndIf
EndIf
If (a_option == displaypop)
displaypopstatus = !displaypopstatus
SetToggleOptionValue(a_option, displaypopstatus)
If displaypopstatus == True
displayMessage.setvalueint(5)
Else
displayMessage.setvalueint(0)
EndIf
EndIf
EndEvent
event OnOptionKeyMapChange(int a_option, int KeyCode, string a_conflictControl, string a_conflictName)
if (a_option == wherekey)
bool continue = true
if (a_conflictControl != "")
string msg
if (a_conflictName != "")
msg = "This key is already mapped to:\n'" + a_conflictControl + "'\n(" + a_conflictName + ")\n\nAre you sure you want to continue?"
else
msg = "This key is already mapped to:\n'" + a_conflictControl + "'\n\nAre you sure you want to continue?"
endIf
continue = ShowMessage(msg, true, "$Yes", "$No")
endIf
if (continue)
WhereKey1 = KeyCode
SetKeymapOptionValue(a_option, KeyCode)
endIf
endIf
endEvent
Event OnKeyDown(int keycode)
if keycode == WhereKey1
If !((game.GetPlayer().GetParentCell()).IsInterior())
currentx = (Hero.GetPositionX() / 4096)
currenty = (Hero.GetPositionY() / 4096)
currentz = (Hero.GetPositionZ() / 4096)
SubX = Math.Floor(currentx / 8)
SubY = Math.Floor(currenty / 8)
BlockX = Math.Floor(currentx / 32)
BlockY = Math.Floor(currenty / 32)
if displayMessage.getvalueint() == 0
Debug.Notification("X= " + currentx + " Y= " + currenty + " Z= " + currentz ) ;(+ "Block: " + BlockX + ", " + BlockY + " SubBlock: " + SubX + ", " + SubY)
Debug.Notification("Block: " + BlockX + ", " + BlockY + " SubBlock: " + SubX + ", " + SubY)
Debug.Notification("SSEdit X= " + (Math.Floor(currentX * 4096) as Int) + "SSEdit Y= " + (Math.Floor(currentY * 4096) as int) + "SSEdit Z= " + (Math.Floor(currentZ * 4096) as Int) )
else
Debug.MessageBox("X= " + (currentX * 4096) + \
"\nY= " + (currentY * 4096) + \
"\nZ= " + (currentZ * 4096) + \
"\nBlock: " + BlockX + ", " + BlockY + " SubBlock: " + SubX + ", " + SubY + \
"\nCell: X= " + (Math.Floor(currentx) as Int) + " Y= " + (Math.Floor(currenty) as Int)) ; \n is new line
endif
else
if displayMessage.getvalueint() == 0
Debug.Notification("X= " + (currentX * 4096) + " Y= " + (currentY * 4096) + " Z= " + (currentZ * 4096))
Else
Debug.MessageBox("X= " + (currentX * 4096) + \
"\nY= " + (currentY * 4096) + \
"\nZ= " + (currentZ * 4096))
endif
endif
endif
EndEvent
Event OnConfigClose()
UnregisterForAllKeys()
RegisterForKey(WhereKey1)
EndEvent
GlobalVariable Property ReportLocation Auto
GlobalVariable Property displayMessage Auto
I did it quickly last time using the cast as integer. You are correct, for negative numbers we need to floor it. Like the Block/SubBlock numbers use.
I think it is correct now. Please test it.
Thank you, Herowynne for your diligence.
high hrothgar player1
x= 17.580664 y=-13.713266 z=2.688038 block: 0, -1 subblock: 2,-2
high hrothgar player1
high hrothgar bandit1
x= 17.440817 y=-14.222589 z=2.878066 block: 0, -1 subblock: 2,-2
high hrothgar bandit1
high hrothgar player2
x= 15.862290 y=-15.517021 z=5.097737 block: 0, -1 subblock: 1,-2
high hrothgar player2
high hrothgar bandit2
x= 15.869985 y=-15.512234 z=5.094908 block: 0, -1 subblock: 1,-2
high hrothgar bandit2
high hrothgar player3
x= 12.216206 y=-15.923110 z=5.216349 block: 0, -1 subblock: 1,-2
high hrothgar player3
high hrothgar bandit3
x= 12.068657 y=-15.956759 z=5.297754 block: 0, -1 subblock: 1,-2
high hrothgar bandit3
high hrothgar player4
x= 10.591414 y=-11.324113 z=4.995488 block: 0, -1 subblock: 1,-2
high hrothgar player4
high hrothgar bandit4
x= 10.273434 y=-10.584332 z=5.195273 block: 0, -1 subblock: 1,-2
high hrothgar bandit4
high hrothgar player5
x= 11.742332 y=-9.196606 z=5.337015 block: 0, -1 subblock: 1,-2
high hrothgar player5
high hrothgar bandit5
x= 11.890721 y=-9.286741 z=5.530586 block: 0, -1 subblock: 1,-2
high hrothgar bandit5
Please, if you can, test 3.1, uploaded at 4:30am. Should be golden. Please test while running from one town to another. then going indoors, then outdoors. then fast travel to see if it still works. I was playing wackamole with the scripts for hours. tired. don't want to jsut release without more testing from you all.
remember the command to turn on debug messages is "set diags to 5" in the console.
as much as i want to release this, i don't want it in the wild if it is not going to work right.
if anyone else can test it and report all feedback is welcome. talking about the fast travel encounter mod in misc files, NOT the where i am mod.
if we had skse this would ne a done deal. sigh.
well i got 2 of the settings books (both the same just double)
this was on a save that didn't have fte in it
debug said things like fork not stuck, fork on cell detach ran, player changed cells spell detected, something about inside while loop, on loop completed items left = -1
travelled on foot from whiterun to riverwood (entered sleeping giant while there )then to bfb to secunda's kiss then to bleakwood basin back to whiterun (entered)no ambushes while just walking.
my script latency was bad though ended up doing a check 177ms (about double what i normally have) did some fast travelling and 2 times the black screen didn't come up (that may have been because of the latency)
but the other times worked as it was supposed to got ambushed by bandits 3 times then werewolves (once) fast traveled to riverwood not sure if it was a vampire ambush or a wolf but had a master vampire plus the death hounds and a bunch of wolves, probably a vampire ambush wolves and riverwood go hand in hand.
died a couple of times that's why took so long.
i hope the latency is because of the debug and not something else.
going to test Fast Travel Ambushes and Consequences-9300-3-2 now