[BETA] Oblivion Script Extender (OBSE) 0018

Post » Fri May 27, 2011 11:25 am

Something for BUG hunting:

ctd with oblivion.exe and errors with ngcd, kuertee cleanup and enhanced economy

Oblivion memory usage after 2 h 22 min: 3 790 032 KByte :celebration:

http://www.4shared.com/file/141397862/41b70e69/oblivion_errors_1.html
User avatar
Beth Belcher
 
Posts: 3393
Joined: Tue Jun 13, 2006 1:39 pm

Post » Fri May 27, 2011 1:50 pm

My feedback on obsev18b5.
I'm using Armorer's Advantage, nGCD, WillfulResistance, Progress, EnhancedWeather, kuerteecleanup, & Map Marker Overhaul with total mods at ~120. This is with streamline doing saving, purging, sighting in the background along with ConScribe & sr_Oblivion_Stutter_Remover.
Not getting any of the console spam that I had with v18b4. I have been doing modifications, cleaning, etc. to various mods and testing in game, so my longest play time has been ~16 minutes. But this includes rapid interior/exterior cell changes, fast travel, combat, bartering, being with 15-20 NPC's in a market and talking with some of them. No horse riding, since I walk or swim every where.
User avatar
butterfly
 
Posts: 3467
Joined: Wed Aug 16, 2006 8:20 pm

Post » Fri May 27, 2011 1:45 am

I think i should post it here too, with OBSE 18b5 the nGCD console spam (i think) caused the log file to grow over 600 MB in size during few hours of play. I'm not sure what's in that log since apparently no program can open files that big.
User avatar
Tanika O'Connell
 
Posts: 3412
Joined: Fri Jan 26, 2007 1:34 am

Post » Fri May 27, 2011 6:42 am

If what Baphometal suggested doesn't work try adding a space after the last line or a whole new line with a space.

Just a space after ; end - doesn't work
Newline - works
Commented Newline - works
Removing last line ; end - works

I guess OBSE always reads the last line as uncommented?


Removing just the d of ; end - works

Well, maybe not :shrug:
User avatar
Joe Bonney
 
Posts: 3466
Joined: Tue Jul 17, 2007 12:00 pm

Post » Fri May 27, 2011 5:25 pm

Just a space after ; end - doesn't work
Newline - works
Commented Newline - works
Removing last line ; end - works

I guess OBSE always reads the last line as uncommented?


Removing just the d of ; end - works

Well, maybe not :shrug:
Maybe a bit pointless to ask but does it give the same error when just using ;end (without a space between)?
User avatar
Danny Warner
 
Posts: 3400
Joined: Fri Jun 01, 2007 3:26 am

Post » Fri May 27, 2011 12:54 pm

Just noticed a minor issue: these messages are showing one in place of the other:
"Invalid array access - expected numeric index, received string"
"Invalid array access - expected string index, received numeric"

No big deal, anyway. I've seen them dozens of times before and I've never noticed it until now.

As a feed-back: I am working with hundreds of arrays (most are stringmap, most are multidimensional, many are cross-referenced) and hundreds of user functions and, except for what I have already reported, everything is fine.
User avatar
Tom Flanagan
 
Posts: 3522
Joined: Sat Jul 21, 2007 1:51 am

Post » Fri May 27, 2011 5:38 am

I got a script error in OBSE now - is it the script or OBSE dll beta 5?

OBSE: initialize (version = 18.4 010201A0)oblivion root = L:\Oblivion\plugin directory = L:\Oblivion\Data\OBSE\Plugins\checking plugin L:\Oblivion\Data\OBSE\Plugins\\Elys_USV.dllplugin L:\Oblivion\Data\OBSE\Plugins\\Elys_USV.dll (00000001 Elys_USV 0000005D) loaded correctlychecking plugin L:\Oblivion\Data\OBSE\Plugins\\OBSE_Elys_Pluggy.dllSetOpcodeBase 00002330RegisterCommand GetEsp (2330)RegisterCommand CreateArray (2331)RegisterCommand DestroyArray (2332)RegisterCommand ArraySize (2333)RegisterCommand ArrayCount (2334)RegisterCommand SetInArray (2335)RegisterCommand SetFloatInArray (2336)RegisterCommand GetInArray (2337)RegisterCommand GetTypeInArray (2338)RegisterCommand RemInArray (2339)RegisterCommand FindInArray (233A)RegisterCommand FindFloatInArray (233B)RegisterCommand SetRefInArray (233C)RegisterCommand FindRefInArray (233D)RegisterCommand CopyArray (233E)RegisterCommand ArrayEsp (233F)RegisterCommand ArrayProtect (2340)RegisterCommand FirstInArray (2341)RegisterCommand DestroyAllArrays (2342)RegisterCommand PackArray (2343)RegisterCommand CreateString (2344)RegisterCommand DestroyString (2345)RegisterCommand SetString (2346)RegisterCommand StringEsp (2347)RegisterCommand StringProtect (2348)RegisterCommand StringLen (2349)RegisterCommand DestroyAllStrings (234A)RegisterCommand StringSetName (234B)RegisterCommand StringGetName (234C)RegisterCommand StringMsg (234D)RegisterCommand StringCat (234E)RegisterCommand UserFileExists (234F)SetOpcodeBase 00002378RegisterCommand RenFile (2378)RegisterCommand DelFile (2379)RegisterCommand StringToTxtFile (237A)RegisterCommand CopyString (237B)RegisterCommand IntToString (237C)RegisterCommand FloatToString (237D)RegisterCommand RefToString (237E)RegisterCommand IniReadInt (237F)RegisterCommand IniReadFloat (2380)RegisterCommand IniReadRef (2381)RegisterCommand IniWriteInt (2382)RegisterCommand IniWriteFloat (2383)RegisterCommand IniWriteRef (2384)RegisterCommand IniKeyExists (2385)RegisterCommand IniDelKey (2386)RegisterCommand EspToString (2387)RegisterCommand IniReadString (2388)RegisterCommand IniWriteString (2389)RegisterCommand ModRefEsp (238A)RegisterCommand GetRefEsp (238B)RegisterCommand StringToRef (238C)RegisterCommand StringCmp (238D)RegisterCommand FileToString (238E)RegisterCommand StringPos (238F)RegisterCommand StringToInt (2390)RegisterCommand StringToFloat (2391)RegisterCommand ArrayCmp (2392)RegisterCommand StringMsgBox (2393)RegisterCommand StringIns (2394)RegisterCommand StringRep (2395)RegisterCommand IntToHex (2396)RegisterCommand LC (2397)SetOpcodeBase 000023B0RegisterCommand FromTSFC (23B0)RegisterCommand ToTSFC (23B1)RegisterCommand StrLC (23B2)RegisterCommand CreateEspBook (23B3)RegisterCommand FmtString (23B4)RegisterCommand FixName (23B5)RegisterCommand ResetName (23B6)RegisterCommand HasFixedName (23B7)RegisterCommand csc (23B8)RegisterCommand StringSetNameEx (23B9)RegisterCommand StringGetNameEx (23BA)RegisterCommand FixNameEx (23BB)RegisterCommand IniGetNthSection (23BC)RegisterCommand IniSectionsCount (23BD)RegisterCommand RunBatString (23BE)RegisterCommand Halt (23BF)RegisterCommand RefToLong (23C0)RegisterCommand LongToRef (23C1)RegisterCommand FindFirstFile (23C2)RegisterCommand FindNextFile (23C3)RegisterCommand GetFileSize (23C4)RegisterCommand NewHudS (23C5)RegisterCommand DelHudS (23C6)RegisterCommand ScreenInfo (23C7)RegisterCommand HudS_X (23C8)RegisterCommand HudS_SclX (23C9)RegisterCommand HudS_Show (23CA)RegisterCommand HudS_Opac (23CB)RegisterCommand HudS_Align (23CC)RegisterCommand AutoSclHudS (23CD)RegisterCommand HudS_Y (23CE)RegisterCommand HudSEsp (23CF)RegisterCommand HudSProtect (23D0)RegisterCommand HudsInfo (23D1)RegisterCommand DelAllHudSs (23D2)RegisterCommand HudS_L (23D3)RegisterCommand rcsc (23D4)RegisterCommand HudS_SclY (23D5)RegisterCommand NewHudT (23D6)RegisterCommand DelHudT (23D7)RegisterCommand HudT_X (23D8)RegisterCommand HudT_SclX (23D9)RegisterCommand HudT_Show (23DA)RegisterCommand HudT_Opac (23DB)RegisterCommand HudT_Align (23DC)RegisterCommand AutoSclHudT (23DD)RegisterCommand HudT_Y (23DE)RegisterCommand HudTEsp (23DF)RegisterCommand HudTProtect (23E0)RegisterCommand HudTInfo (23E1)RegisterCommand DelAllHudTs (23E2)RegisterCommand HudT_L (23E3)RegisterCommand HudT_SclY (23E4)RegisterCommand PauseBox (23E5)RegisterCommand KillMenu (23E6)RegisterCommand SetHudT (23E7)RegisterCommand HudT_Text (23E8)RegisterCommand HudS_Tex (23E9)RegisterCommand SanString (23EA)RegisterCommand IsHUDEnabled (23EB)RegisterCommand IsPluggyDataReset (23EC)RegisterCommand FromOBSEString (23ED)RegisterCommand ToOBSEString (23EE)SetOpcodeBase 000023FFRegisterCommand PlgySpcl (23FF)plugin L:\Oblivion\Data\OBSE\Plugins\\OBSE_Elys_Pluggy.dll (00000001 OBSE_Elys_Pluggy 00000080) loaded correctlychecking plugin L:\Oblivion\Data\OBSE\Plugins\\OBSE_Elys_Uncapper.dllplugin L:\Oblivion\Data\OBSE\Plugins\\OBSE_Elys_Uncapper.dll (00000001 OBSE_Elys_Uncapper 0000005E) loaded correctlychecking plugin L:\Oblivion\Data\OBSE\Plugins\\sr_Oblivion_Stutter_Remover.dllplugin L:\Oblivion\Data\OBSE\Plugins\\sr_Oblivion_Stutter_Remover.dll (00000001 sr_Oblivion_Stutter_Remover 00000003) loaded correctlychecking plugin L:\Oblivion\Data\OBSE\Plugins\\weOCPS.dllplugin L:\Oblivion\Data\OBSE\Plugins\\weOCPS.dll (00000001 weOCPS 01328DD8) loaded correctlypatchedDoLoadGameHook: C:\Users\MentalGames\Documents\My Games\Oblivion\Saves\Save 1547 - Nyraniana - The Jerall Mountains, Level 27, Playing Time 299.46.51.essloading from C:\Users\MentalGames\Documents\My Games\Oblivion\Saves\Save 1547 - Nyraniana - The Jerall Mountains, Level 27, Playing Time 299.46.51.obseLoading stringsLoading array variablesDone loading array variablesError in script 1c002351An expression failed to evaluate to a valid result	File: qazSpellbook.esp Offset: 0x000000CA Command:  (0x0003)Error in script 1c002351An expression failed to evaluate to a valid result	File: qazSpellbook.esp Offset: 0x000000CA Command:  (0x0003)Error in script 1c002351An expression failed to evaluate to a valid result	File: qazSpellbook.esp Offset: 0x000000CA Command:  (0x0003)Error in script 1c002351An expression failed to evaluate to a valid result	File: qazSpellbook.esp Offset: 0x000000CA Command:  (0x0003)Error in script 1c002351An expression failed to evaluate to a valid result	File: qazSpellbook.esp Offset: 0x000000CA Command:  (0x0003)DeleteGameHook: C:\Users\MentalGames\Documents\My Games\Oblivion\Saves\Save 1531 - Nyraniana - Underdark, Level 27, Playing Time 294.45.02.essdeleting C:\Users\MentalGames\Documents\My Games\Oblivion\Saves\Save 1531 - Nyraniana - Underdark, Level 27, Playing Time 294.45.02.obseDoSaveGameHook: C:\Users\MentalGames\Documents\My Games\Oblivion\Saves\Save 1548 - Nyraniana - Lord Rugdumph's Estate, Level 27, Playing Time 300.19.54.esssaving to C:\Users\MentalGames\Documents\My Games\Oblivion\Saves\Save 1548 - Nyraniana - Lord Rugdumph's Estate, Level 27, Playing Time 300.19.54.obseError in script ae000ce6GetUsedPowers must be called within an OBSE expression.** Script Error: Script 39000800 in file "kuerteeHorseCommands.esp" **	Function must be used within a Set statementError in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script 3900080aar_Null must be called within an OBSE expression.** Script Error: Script 3900080a in file "kuerteeHorseCommands.esp" **	Function must be used within a Set statementError in script 3900080aar_Null must be called within an OBSE expression.Error in script 3900080aar_Null must be called within an OBSE expression.Error in script 3900080aar_Null must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ac000805ar_Find must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.Error in script ae000ce6GetUsedPowers must be called within an OBSE expression.DeleteGameHook: C:\Users\MentalGames\Documents\My Games\Oblivion\Saves\Save 1532 - Nyraniana - Menzoberranzan, Level 27, Playing Time 295.10.39.essdeleting C:\Users\MentalGames\Documents\My Games\Oblivion\Saves\Save 1532 - Nyraniana - Menzoberranzan, Level 27, Playing Time 295.10.39.obseDoSaveGameHook: C:\Users\MentalGames\Documents\My Games\Oblivion\Saves\Save 1549 - Nyraniana - The Nibenay Basin, Level 28, Playing Time 300.27.12.esssaving to C:\Users\MentalGames\Documents\My Games\Oblivion\Saves\Save 1549 - Nyraniana - The Nibenay Basin, Level 28, Playing Time 300.27.12.obseOBSE: deinitialize


Mod 1c Spellbook
mod ae DSTimemaneger
mod 39 kuertee horsecommands
Cheers!
User avatar
MARLON JOHNSON
 
Posts: 3377
Joined: Sun May 20, 2007 7:12 pm

Post » Fri May 27, 2011 9:04 am

In the interest of avoiding string leaks (aka savegame bloating), I've been expermenting with string_var allocation, particularly in relation to user functions, and I've determined a few things that I didn't see explained in the documentation, so I'd like to post here for confirmation. Please let me know if any of this is incorrect.
  • Strings passed as parameters to functions are copied. The string_var in the function will have a different string ID than in the calling script, and modifying it won't modify the caller's string.


  • If you return a string from a function script, you still have to sv_Destruct the local string variable (assuming it isn't used anywhere else):
    string_var sFoolet sFoo := "Foo"SetFunctionValue sFoosv_Destruct sFoo ; Important!
    I guess the SetFunctionValue command copies the string into a special return area.


  • If a function script returns a string, but the code calling the function doesn't assign the return value to a string_var, the returned string does get cleaned up properly. (It doesn't get saved in the .obse file like an undestructed string_var does.)


  • Temporary strings created while evaluating OBSE expressions in a function script are destroyed automatically, though not immediately when the function returns. (I think it happens at the end of the frame, and for all scripts, not just function scripts.)


  • Although the documentation says that local (non-parameter) string variables within a function are not cleaned up automatically, it appears that strings created with sv_Construct within a function are cleaned up in the same way as temporaries are, no matter what variables they're assigned to.
    set sFoo to sv_Construct "Foo" ; Will be destroyed automatically; no sv_Destruct neededlet sBar := "Bar" ; Will not be destroyed automatically...sv_Destruct sBar ; ...so this is necessary
    This seems like a bug, since the sv_Constructed string will be destroyed even if its ID has been stored into some other string_var outside the function, such as in a quest or persistent object.
While testing all this, I've noticed that when a temporary string is destroyed, its ID doesn't seem to be properly marked as unused in memory, because it won't be re-used within the same game session. For example, if you put this in a quest script:
let sFoo := ( GetNthModName 00 ) + "-foo"PrintToConsole "String 1: %z", 1PrintToConsole "String 2: %z", 2PrintToConsole "String 3: %z", 3PrintToConsole "String 4: %z", 4sv_Destruct sFoo
the first time it runs you'll see that string 1 is "Oblivion.esm" (the temporary created by GetNthModName) and string 2 is "Oblivion.esm-foo" (the final value). The second time, string 1 is unused, string 2 is the temporary and 3 is the final value. The third time it runs, strings 1 and 2 are both unused, and 3 and 4 have the values, and so on. This seems to be an in-memory quirk only; after saving and reloading, string IDs 1 and 2 will be used again the next time the script runs.

I also noticed that some things that allocate new string IDs (sv_Construct and "let" assignment of strings) take the lowest unused ID, but others (temporaries like the above usage of GetNthModName) seem to take the highest allocated ID and add one, even if there are lower IDs available that could be used. Not a bug, just something to be aware of when doing string-related debugging.
User avatar
barbara belmonte
 
Posts: 3528
Joined: Fri Apr 06, 2007 6:12 pm

Post » Fri May 27, 2011 2:40 am

Found a bug: returning an array from a function seems to break its reference-counting, causing the array to never be freed.

ScriptName TestFuncarray_var aFoobegin Function { }	let aFoo := ar_Construct Array	let aFoo[0] := 42	SetFunctionValue aFoo ; Return this array ID	let aFoo := ar_Null ; Shouldn't be necessary, but I tried anyway and it didn't helpend

ScriptName TestQuestScriptarray_var aFoobegin GameMode	let aFoo := Call TestFunc	PrintToConsole "Got array ID: %.0f", aFoo	let aFoo := ar_Nullend

After the end of the frame when the GameMode block runs, using ar_DumpID in the console should show that the array doesn't exist, but it still does, and it gets saved in the .obse file.

Taking out the function call and doing the ar_Construct directly in TestQuestScript produces the expected results (the array gets destroyed and not saved).
User avatar
Alexandra Ryan
 
Posts: 3438
Joined: Mon Jul 31, 2006 9:01 am

Post » Fri May 27, 2011 8:49 am

Been having a lot of crashes (like at least 20 in a good full day of playing)
It happens mostly when doing a dungeon crawl, so with that In mind I started trying to see what mods would be in effect in that situation and unticked them in OBMM. Nothing, it stills crashes like crazy.

I believe it's because of OBSE and the fact that I'm currently running beta 5 (due to mods needing it now, so I can't go back). It's my only explanation, however I can't prove anything, it's not showing anything in the OBSE log file. Is there some other way I can find out for sure if this is whats going on? Maybe it will help you guys get a stable version out sooner.
User avatar
Nathan Barker
 
Posts: 3554
Joined: Sun Jun 10, 2007 5:55 am

Post » Fri May 27, 2011 4:41 am

Been having a lot of crashes (like at least 20 in a good full day of playing)
It happens mostly when doing a dungeon crawl, so with that In mind I started trying to see what mods would be in effect in that situation and unticked them in OBMM. Nothing, it stills crashes like crazy.
I believe it's because of OBSE and the fact that I'm currently running beta 5 (due to mods needing it now, so I can't go back). It's my only explanation, however I can't prove anything, it's not showing anything in the OBSE log file. Is there some other way I can find out for sure if this is whats going on? Maybe it will help you guys get a stable version out sooner.


Since nothing is showing up in the obse.log its hard to point. Get 'conscribe.dll' which will record all the console messages including any mod's errors in a separate log file.
Maybe deactivate all the obse mods and launch oblivion without using the obse loader and see how the game plays. Sort of a baseline as to whether obse is part of the problem or not. If the game is stable, launch with obse but without any obse mods or plugins, see how it goes. Then start adding back in the obse mods and plugins.
User avatar
SUck MYdIck
 
Posts: 3378
Joined: Fri Nov 30, 2007 6:43 am

Post » Fri May 27, 2011 4:53 pm

Is it possible to use the below commands to use a window as a door so that you can enter a building through a window.

SetDoorTeleport
GetDoorTeleportX
GetDoorTeleportY
GetDoorTeleportZ
GetDoorTeleportRot
User avatar
George PUluse
 
Posts: 3486
Joined: Fri Sep 28, 2007 11:20 pm

Post » Fri May 27, 2011 5:13 am

Is it possible to use the below commands to use a window as a door so that you can enter a building through a window.

SetDoorTeleport
GetDoorTeleportX
GetDoorTeleportY
GetDoorTeleportZ
GetDoorTeleportRot

As a quick (somewhat educated) guess - no. The window isn't a door so those functions won't even work on it. You could use GetCrosshairRef to tell what the player is trying to activate, and if it's a window teleport them inside. (Really, Firefox, teleport isn't a word... really?) Two issues - how do you tell it's a window, and how do you guess where to teleport them? But, that's the fun of modding :)

Quick request - a Plugin Message for cell transitions. http://www.gamesas.com/bgsforums/index.php?s=&showtopic=1038730&view=findpost&p=15213896 I'm not entirely sure I can tell if it's Interior<->Exterior or turn off sky from the Loading screen, but good to try :) And hopefully there will be other uses (memory management?).
User avatar
Russell Davies
 
Posts: 3429
Joined: Wed Nov 07, 2007 5:01 am

Post » Fri May 27, 2011 4:40 pm

In the interest of avoiding string leaks (aka savegame bloating), I've been expermenting with string_var allocation, particularly in relation to user functions, and I've determined a few things that I didn't see explained in the documentation, so I'd like to post here for confirmation. Please let me know if any of this is incorrect.
  • Strings passed as parameters to functions are copied. The string_var in the function will have a different string ID than in the calling script, and modifying it won't modify the caller's string.
Alot of things but this one I can comment on. You aren't passing a string_var to a user function, you are passing a string, which can be as the content of a string_var or as something returned by another (user)function. Then as the function script is extecuted this string is stored in the local string_var.
User avatar
Tanya
 
Posts: 3358
Joined: Fri Feb 16, 2007 6:01 am

Post » Fri May 27, 2011 4:03 pm

Alot of things but this one I can comment on. You aren't passing a string_var to a user function, you are passing a string, which can be as the content of a string_var or as something returned by another (user)function. Then as the function script is extecuted this string is stored in the local string_var.

Makes sense. Same goes for returning a string, as far as I can tell.
User avatar
TRIsha FEnnesse
 
Posts: 3369
Joined: Sun Feb 04, 2007 5:59 am

Post » Fri May 27, 2011 7:44 am

Hi, I tried to use the IsOblivionGate function, but it seems like it is still not recognized (I'm using 18, latest beta).
User avatar
George PUluse
 
Posts: 3486
Joined: Fri Sep 28, 2007 11:20 pm

Post » Fri May 27, 2011 4:43 am

Is it possible to use the below commands to use a window as a door so that you can enter a building through a window.

SetDoorTeleport
GetDoorTeleportX
GetDoorTeleportY
GetDoorTeleportZ
GetDoorTeleportRot

Do you mean a window on a building mesh? If so, most likely not.
User avatar
Jacob Phillips
 
Posts: 3430
Joined: Tue Aug 14, 2007 9:46 am

Post » Fri May 27, 2011 9:55 am

Can expression parsing ( like let, print ) be used in commands added by plugins ?
User avatar
Luna Lovegood
 
Posts: 3325
Joined: Thu Sep 14, 2006 6:45 pm

Post » Fri May 27, 2011 3:18 pm

Just curious: is SetScript still considered a "do not use" feature at the moment? Looking at the documentation, there's a warning that more testing needs to be done, but right now it's the most 'natural' way to accomplish what I want to do: I'm setting up a Player-clone, killing it, and then when the Player Activates it removing all of it's items to the Player (and using DeleteFullActorCopy to remove it from the world)-- it all seems to be working perfectly right now, but if it can cause major issues or something later, I've obviously not had time to see it yet.
User avatar
Hearts
 
Posts: 3306
Joined: Sat Oct 20, 2007 1:26 am

Post » Fri May 27, 2011 5:33 pm

Hi,

I was doing some testing yesterday when I got some really strange error (or at least noticed it). The error was in this line of Enhanced Economy:
let lastTarget := tnoEE.removedItems[lastTargetIndex]

Where tnoEE.removedItems is a two-dimensional array, and lastTarget an array. The length of the removedItems was two, and yet I got an error on that line with lastTargetIndex==1.

I added an "ar_Dump tnoEE.removedItems" line, and found that the first element was a map marker reference and the second element was 0. And yet, when looking through my entire code, the only lines I edit this array are the following:

if removedItems == 0		let removedItems := ar_Construct Array	endif

(During initialization), and later

	let tnoEE.removedItems[tnoEE.removedIndex] := ar_Construct Array

...to add items to it.

So it is really not possible for the removedItems array to hold anything like a map marker reference, and yet it does. Now this testing was done with an old save where I have added and removed mods a lot (used for testing), and the mods have changed order too, where Map Marker Overhaul is one of the others involved, and it does store map marker references in arrays. So I being to wonder if the OBSE array data of two different mods can somehow be mixed when the mods change load order. Is there a chance for this?



Then I have a request for v18 final, something I've asked for a couple of months ago too:

In Map Marker Overhaul I have the following code:

		let marker := GetMapMenuMarkerRef		let marker_trait := GetActiveUIComponentFullName...		marker.SetMapMarkerType icon_index		let str1 := marker_trait + "\user5"		SetMenuFloatValue $str1 1023 icon_index


What this does, is to change the visible icon of one specific map marker to icon_index. This works perfect, except for one thing: If there are more than one visible map marker with the same name, GetActiveUIComponentFullName returns the excact same full name as well, and SetMenuFloatValue ends up setting the icon for the wrong marker. This is especially the problem with Oblivion gates and Obelisks of order, since they all have the same name.

GetMapMenuMarkerRef always returns the correct marker reference, so the correct marker is called with SetMapMarkerType, thus closing and reopening the map will make the correct marker have the new icon. But I really want the correct marker to get the new icon while the map menu is open too. I'm not sure there is an easy solution to this, but if there is, I hope you can manage to get it in. The only possible easy solution I can think of, is that the call to SetMapMarkerType detects that the map menu is open, and then updates the correct marker trait with the new value too. You have already added this functionality for SetName, so I at least hope copying the solution from SetName is relatively easy.
User avatar
sharon
 
Posts: 3449
Joined: Wed Nov 22, 2006 4:59 am

Post » Fri May 27, 2011 5:54 am

Just curious: is SetScript still considered a "do not use" feature at the moment? Looking at the documentation, there's a warning that more testing needs to be done, but right now it's the most 'natural' way to accomplish what I want to do: I'm setting up a Player-clone, killing it, and then when the Player Activates it removing all of it's items to the Player (and using DeleteFullActorCopy to remove it from the world)-- it all seems to be working perfectly right now, but if it can cause major issues or something later, I've obviously not had time to see it yet.

The only issue (that may have been addressed in v18) left are script variables - if you change a script and it has different variables will they be set to 0, keep the values from the previous script, etc. For what you're doing, there shouldn't be a problem.

if removedItems == 0		let removedItems := ar_Construct Array	endif

	let tnoEE.removedItems[tnoEE.removedIndex] := ar_Construct Array

Maybe you're setting removedIndex before setting it to the array? Remember, the Array structure is fairly inflexible and you set something in [1] you'll automatically create a [0] - you're not supposed to be able to do this, and it wouldn't explain why [0] is set and [1] is empty, but maybe that first index isn't checked correctly. You could skip the removedIndex var entirely (and safer) with
let iArray := ar_Size tnoEE.removedItemslet tnoEE.removedItems[iArray] := ar_Construct Array

User avatar
Thema
 
Posts: 3461
Joined: Thu Sep 21, 2006 2:36 am

Post » Fri May 27, 2011 3:38 am

Since I've been away for a while, I was wondering what the status was of ambient lighting changes. If you could dynamically change lighting levels you could make one heck of a lighting mod.

And as long as I'm asking, is there any way or any possibility to change an actor's animation folder?
User avatar
Batricia Alele
 
Posts: 3360
Joined: Mon Jan 22, 2007 8:12 am

Post » Fri May 27, 2011 2:55 am

Whenever I cast a spell or use an attack with obse 18 loaded, all my stats go to 1. I don't know why but its seriously annoying. v17 works fine and i have a few mods that need v18 to work.

Any help would be appreciated.

Active Mod Files:00  Oblivion.esm01  Jog_X_Mod.esm02  Francesco's Leveled Creatures-Items Mod.esm03  Francesco's Optional New Items Add-On.esm04  Cobl Main.esm  [Version 1.72]05  Oscuro's_Oblivion_Overhaul.esm  [Version 1.34]06  Mart's Monster Mod.esm  [Version 3.7b1]07  TamrielTravellers.esm  [Version 1.37a]08  FCOM_Convergence.esm  [Version 0.9.9a7]09  AFC v2 Core.esm0A  HorseCombatMaster.esm0B  UnnecessaryViolence.esm++  TNR ALL RACES FINAL.esp++  TNR - ShiveringIsles.esp0C  Unofficial Oblivion Patch.esp0D  Oblivion Citadel Door Fix.esp0E  DLCShiveringIsles.esp0F  Unofficial Shivering Isles Patch.esp  [Version 1.2.0]10  Francesco's Optional Chance of Stronger Bosses.esp11  Francesco's Optional Chance of Stronger Enemies.esp12  FCOM_Francescos.esp  [Version 0.9.9]13  FCOM_FrancescosItemsAddOn.esp  [Version 0.9.9]14  FCOM_FrancescosNamedBosses.esp  [Version 0.9.9]15  Symphony of Violence.esp16  Diverse Voices.esp17  AFC v2 Combo Chains.esp18  AFC v2 Combat Moves.esp19  AFC v2 Damage Text.esp1A  AFC v2 Gauntlet Weaponry.esp1B  AFC v2 Locational Damage.esp1C  Living Economy.esp1D  Living Economy - Items.esp1E  C&C - The Blackwood Company.esp1F  Map Marker Overhaul.esp  [Version 2.3]20  HotkeyCasting.esp21  CSR - Fine Iron.esp22  CSR - Golden Saint.esp23  Cobl Glue.esp  [Version 1.72]24  Cobl Si.esp  [Version 1.63]25  OOO 1.32-Cobl.esp  [Version 1.72]26  Bob's Armory Oblivion.esp27  FCOM_BobsArmory.esp  [Version 0.9.9]28  Oblivion WarCry EV.esp29  FCOM_WarCry.esp  [Version 0.9.9]2A  Oscuro's_Oblivion_Overhaul.esp  [Version 1.34]2B  OOO-Map_Markers_Stock.esp  [Version 1.32.Final]2C  FCOM_Convergence.esp  [Version 0.9.9]2D  FCOM_RealSwords.esp  [Version 0.9.9]2E  Mart's Monster Mod - Less Bone Loot.esp  [Version 3.7b1]2F  Mart's Monster Mod - Gems & Gem Dust.esp  [Version 3.7b1]30  Mart's Monster Mod - Hunting & Crafting.esp  [Version 3.7b1]31  FCOM_TamrielTravelers.esp  [Version 0.9.9]32  FCOM_DiverseGuardUnity.esp  [Version 0.9.9]33  FCOM_BobsGuardUnity.esp  [Version 0.9.9]34  FCOM_FriendlierFactions.esp  [Version 0.9.9]35  C&C - The Blackwood Company - OOO.esp36  OOO-WaterFish.esp  [Version 1.34]37  MMM-Cobl.esp  [Version 1.69]38  thievery.esp39  xuldarkforest.esp3A  xulStendarrValley.esp3B  xulTheHeath.esp3C  XulEntiusGorge.esp3D  xulFallenleafEverglade.esp3E  xulColovianHighlands_EV.esp3F  xulChorrolHinterland.esp40  xulBeachesOfCyrodiilLostCoast.esp41  xulLushWoodlands.esp42  xulAncientYews.esp43  xulAncientRedwoods.esp44  xulCloudtopMountains.esp45  xulArriusCreek.esp46  xulPatch_AY_AC.esp47  xulRollingHills_EV.esp48  xulRiverEthe.esp49  xulImperialIsle.esp4A  BloodSpray.esp4B  Salmo the Baker, Cobl.esp  [Version 3.08]4C  Toggleable Quantity Prompt.esp4D  Kobu's Skip Intro Mod.esp4E  StarX Vanilla Vampires Revised.esp4F  MidasSpells.esp50  Midas OscuroGems.esp51  SorcerysToll.esp52  StealthOverhaul.esp53  ZumbsLockpickingMod.esp54  RenGuardOverhaul.esp55  RenGuardOverhaulShiveringIsles.esp56  Denock Arrows.esp57  NE_Realistic_Blocking.esp58  Deadly Reflex 5 - Timed Block with no damage or durability changes.esp59  DeadlyReflex 5 - Combat Moves.esp5A  Enhanced Mercantile Progress.esp  [Version 1.0a]5B  Kobu's Lighter Backpack Mod.esp5C  nGCD.esp5D  Dark Dungeons -  SI.esp5E  Altair_Race.esp5F  Assassins Creed - Altair's Gear - ThrowingKnives.esp60  Cobl Races.esp  [Version 1.52]61  bgBalancingEVCore.esp  [Version 10.52EV-D]62  bgMagicEV.esp  [Version 1.6EV]63  bgMagicSpellTomes_for_WryeBash.esp  [Version 1.55EV]64  bgMagicEVStartspells.esp  [Version 1.55EV]65  bgBalancingEVOptionalClasses.esp  [Version 9.0EV-U]66  bgBalancingEVOptionalNPCDiversity, TNR Merge.esp  [Version 10.0EV-D]67  Disable Tutorial Text.esp68  bgMagicEVShader.esp  [Version 1.6EV]69  bgMagicLightningbolt.esp6A  Map Marker Overhaul - SI additions.esp  [Version 1.0]6B  UnnecessaryViolence.esp6C  Finite Ammo.esp6D  Cobl Silent Equip Misc.esp  [Version 01]6E  Bashed Patch, 0.esp6F  Streamline 3.1.esp

User avatar
Janine Rose
 
Posts: 3428
Joined: Wed Feb 14, 2007 6:59 pm

Post » Fri May 27, 2011 7:17 am

Whenever I cast a spell or use an attack with obse 18 loaded, all my stats go to 1. I don't know why but its seriously annoying. v17 works fine and i have a few mods that need v18 to work.

Any help would be appreciated.
You should probably check your OBSE log files and maybe get conscribe to record the debut output when it happens. Maybe you can catch some info on what is causing it.
User avatar
Pawel Platek
 
Posts: 3489
Joined: Sat May 26, 2007 2:08 pm

Post » Fri May 27, 2011 5:05 am

You should probably check your OBSE log files and maybe get conscribe to record the debut output when it happens. Maybe you can catch some info on what is causing it.


I've no clue how to do this :blink:
User avatar
Ross
 
Posts: 3384
Joined: Thu Aug 10, 2006 7:22 pm

PreviousNext

Return to IV - Oblivion