[RELz] Fallout Script Extender (FOSE) v1.1

Post » Thu Feb 11, 2010 7:01 am

I think he meant http://geck.gamesas.com/index.php/GetLOS (LOS = Line Of Sight). You may also want to have a look at the http://geck.gamesas.com/index.php/Category%3a%44etection_Functions. Please note that not all of them seems to be working correctly all the time.
User avatar
c.o.s.m.o
 
Posts: 3419
Joined: Sat Aug 12, 2006 9:21 am

Post » Thu Feb 11, 2010 1:00 am

I am honestly not sure. I know that in OBSE there has been some interesting work with MapMarkers - but I am not sure exactly what would need to be incorporated into FOSE to make thta happen.
I'm the one who've been requesting and using the OBSE map marker functions for http://www.tesnexus.com/downloads/file.php?id=26389, which has become my most popular mod by far (stayed in TESNexus' 25 most endorsed files since its release), and I have now also got requests for porting it to FO3.

I don't own FO3 yet, but I've planned to buy the GOTY version, which should be just around the corner, and would then of course like to port Map Marker Overhaul to FO3 as well. The problem is that this would add a lot of work for the FOSE team, as I would need the following that exist in OBSE, but not in FOSE:

* Arrays
* String variables
* OpenTextInput (plus the related functions)
* SetName working as well with map markers as OBSEv18 does
* The following map marker funtions:
- GetMapMenuMarkerName
- GetMapMenuMarkerRef
- GetMapMarkerType
- SetMapMarkerType
...and not necessary but nice to have:
- IsMapMarkerVisible
- SetMapMarkerVisible

So that's my FOSE wish list :)
User avatar
Lory Da Costa
 
Posts: 3463
Joined: Fri Dec 15, 2006 12:30 pm

Post » Wed Feb 10, 2010 8:38 pm

I'm the one who've been requesting and using the OBSE map marker functions for http://www.tesnexus.com/downloads/file.php?id=26389, which has become my most popular mod by far (stayed in TESNexus' 25 most endorsed files since its release), and I have now also got requests for porting it to FO3.

I don't own FO3 yet, but I've planned to buy the GOTY version, which should be just around the corner, and would then of course like to port Map Marker Overhaul to FO3 as well. The problem is that this would add a lot of work for the FOSE team, as I would need the following that exist in OBSE, but not in FOSE:

* Arrays
* String variables
* OpenTextInput (plus the related functions)
* SetName working as well with map markers as OBSEv18 does
* The following map marker funtions:
- GetMapMenuMarkerName
- GetMapMenuMarkerRef
- GetMapMarkerType
- SetMapMarkerType
...and not necessary but nice to have:
- IsMapMarkerVisible
- SetMapMarkerVisible

So that's my FOSE wish list :)


Added to the ongoing list of requests. We'll see how many of them make it into v2.
User avatar
James Shaw
 
Posts: 3399
Joined: Sun Jul 08, 2007 11:23 pm

Post » Wed Feb 10, 2010 7:30 pm

1.1 b9 is the stable release right? FSR needs 1.2, so I'm guessing a stable 1.2 is far from release?
User avatar
quinnnn
 
Posts: 3503
Joined: Sat Mar 03, 2007 1:11 pm

Post » Thu Feb 11, 2010 7:29 am

1.1 b9 is the stable release right? FSR needs 1.2, so I'm guessing a stable 1.2 is far from release?

FSR is based on the first beta of v1.2. Basically 1.2 is just 1.1 (and 1.0) with support for the plugin architecture. So far we haven't heard about any complaints or problems with the add-in architecture. We might be able to make that the "stable" release sometime soon - but I would need to verify that with Ian (as he did the plugin work.)

v2 is likely a good ways off.
User avatar
Daniel Brown
 
Posts: 3463
Joined: Fri May 04, 2007 11:21 am

Post » Thu Feb 11, 2010 12:48 am

I would like to request a port of some of the http://obse.silverlock.org/obse_command_doc.html#Scriptable functions from OBSE. I'm primarily interested in HasVariable and GetVariable. Thanks for your hard work!
User avatar
Lizzie
 
Posts: 3476
Joined: Sun Nov 19, 2006 5:51 am

Post » Thu Feb 11, 2010 2:03 am

I am looking for a function to open the values available to the VATS related functions specifically GetVATSTargetHeight -> used in a script this will cause script halts, using it in the console always return a "0".

All of these Compile but cause script halting
Player.GetVATSTargetHeight (BodyPartIndex Value 0-14) TargetActor
Player.GetVATSTargetHeight TargetActor (BodyPartIndex Value 0-14)
Player.GetVATSTargetHeight
Player.GetVATSTargetHeight
GetVATSTargetHeight (BodyPartIndex Value 0-14) TargetActor
GetVATSTargetHeight TargetActor (BodyPartIndex Value 0-14)
GetVATSTargetHeight
GetVATSTargetHeight
Player.GetVATSTargetHeight (BodyPartIndex Value 0-14)
Player.GetVATSTargetHeight TargetActor
GetVATSTargetHeight (BodyPartIndex Value 0-14)
GetVATSTargetHeight TargetActor

Generally I need a way to get the height of specific body part chain centers as it relates to thier current Z Scene Position and the Body Parts chain center z position.
User avatar
Cccurly
 
Posts: 3381
Joined: Mon Apr 09, 2007 8:18 pm

Post » Wed Feb 10, 2010 8:05 pm

Is there any way to apply scripts to projectiles (i.e. landmines)?
User avatar
Lloyd Muldowney
 
Posts: 3497
Joined: Wed May 23, 2007 2:08 pm

Post » Thu Feb 11, 2010 9:30 am

After using SetIsControl, is there any way of clearing its effect on a game reload? I know how to detect the game reload, but if the SetIsControl was performed since the last save I can't figure out how to know which key it was applied to in order to clear it.

Thanks.
User avatar
Natasha Callaghan
 
Posts: 3523
Joined: Sat Dec 09, 2006 7:44 pm

Post » Thu Feb 11, 2010 10:30 am

I'm going to ask again;
is it possible for a function that replaces a texture using TextureOverride sets? You can do this via the GECK, but not via scripting. Is it possible, or would something like NifScripts be neccessary?
User avatar
Erin S
 
Posts: 3416
Joined: Sat Jul 29, 2006 2:06 pm

Post » Thu Feb 11, 2010 9:00 am

After using SetIsControl, is there any way of clearing its effect on a game reload? I know how to detect the game reload, but if the SetIsControl was performed since the last save I can't figure out how to know which key it was applied to in order to clear it.

If SetIsControl were called by your own scripts, you could use global variables to keep track of control mapping, and clearing this on reload. An alternative could be to map out changed controls when the game loads, and change them back.
User avatar
Mark Churchman
 
Posts: 3363
Joined: Sun Aug 05, 2007 5:58 am

Post » Thu Feb 11, 2010 6:33 am

If SetIsControl were called by your own scripts, you could use global variables to keep track of control mapping, and clearing this on reload. An alternative could be to map out changed controls when the game loads, and change them back.

Ok, thanks! I'd forgotten GECK scripting has global variables :embarrass:.

[edit]
[edit of edit]
So, I need to use constant globals as well as quest variables to record changes to IsControl states, and compare them on a game reload.

Hm. OK, I'll try that.
User avatar
Tha King o Geekz
 
Posts: 3556
Joined: Mon May 07, 2007 9:14 pm

Post » Wed Feb 10, 2010 8:24 pm

Question:

I'm using my work laptop to do some modding using FO3Edit, and I am trying to compile my scripts. I dont have the GECK on my laptop so I have been using FOMM to compile scripts.

Is it possible to compile scripts in FOMM that reference FOSE functions? I keep getting an error saying the GetEquippedObject function is not in the dictionary when i try to compile the script in TESsnip.
User avatar
gandalf
 
Posts: 3400
Joined: Wed Feb 21, 2007 6:57 pm

Post » Wed Feb 10, 2010 8:45 pm

No, as far as I know the compiler for FOMM hasn't been updated since it was released. You need to use the to compile scripts that utilise [acronym="FallOut Script Extender"]FOSE functions.

Cipscis
User avatar
ezra
 
Posts: 3510
Joined: Sun Aug 12, 2007 6:40 pm

Post » Thu Feb 11, 2010 12:51 am

I have a couple questions.

First, is there any way to squelch the "Item Added" message? http://www.gamesas.com/bgsforums/index.php?showtopic=1047429&hl=, but the replies indicated it isn't possible.
In Oblivion scripts, we used:

Message " "
Message " "
;the following messages are squelched.

But this doesn't work with the ShowMessage function in Fallout3's scripts.


Next... I'm getting a lot of requests to add more Gunny Sacks to my http://www.fallout3nexus.com/downloads/file.php?id=8876, but I've run in to an issue. When the FOSE function "SetWeight" is used to modify an item's weight, the modified weight is not saved in the save game. I've devised a sort of work around for a single gunny sack, but my work around won't work if a player places one gunny sack inside another gunny sack. The weight will reset to the gunny sack's empty weight the next time the game is loaded. Do you guys have a possible eta of when the save file structure like we have in OBSE will be implemented in FOSE?
User avatar
Claudia Cook
 
Posts: 3450
Joined: Mon Oct 30, 2006 10:22 am

Post » Thu Feb 11, 2010 10:16 am

Just to clarify Ssenkrad's question for anyone who hasn't read that thread, he knows about how to suppress message spam with http://geck.gamesas.com/index.php/AddItem, but has found that there is no way to suppress it with http://geck.gamesas.com/index.php/RemoveAllItems.

On that note, have you tried following it immediately with a call to (unsuppressed) http://geck.gamesas.com/index.php/AddItem or http://geck.gamesas.com/index.php/EquipItem? I recently purchased O:A and found that, upon entering the simulation, the player is not notified via messages that their items have been removed. However, they are notified about items being added to their inventory. Here is the relevant code:
			Player.RemoveItem DLC02ArmorSimSuit 1 1			Player.RemoveAllItems DLC02PlayerContainerRef			Player.Additem DLC02Weap10mmPistolSilenced 1			Player.Additem DLC02WeapKnifeCombat 1			Player.Additem DLC02Charges 3			Player.Additem Ammo10mm 60			Player.Additem DLC02ArmorCombatSnow 1			Player.Additem DLC02ArmorCombatSnowHelmet 1			Player.Additem Stealthboy 1			Player.Additem Lockpick 50			Player.EquipItem DLC02Weap10mmPistolSilenced			Player.EquipItem DLC02ArmorCombatSnow			Player.Equipitem DLC02ArmorCombatSnowHelmet			Player.Dispel Stealthboy			DisablePlayerControls 1 1 1 1 0 1 1			Player.moveto DLC02SimulationStart

Here's what behippo has said about an eta on a co-save file:
No - this does not currently exist. This depends upon the co-save file (.obse for OBSE) which contains much of that information (along with string variables, arrays and the like.) There is a good chance some of these changes will persist in v2 when we bring along the string variables. At least, it certainly won't be possible until we get the co-save files working (which will happen with v2)

Cipscis
User avatar
Juanita Hernandez
 
Posts: 3269
Joined: Sat Jan 06, 2007 10:36 am

Post » Thu Feb 11, 2010 1:32 am

What would I have to do to call the GetPos and SetPos functions and get the return values from my .dll? It would be great to have a reliable way to get and set the players position rather than scanning memory for the offsets.

Also sorry, this isn't FOSE related.
User avatar
IM NOT EASY
 
Posts: 3419
Joined: Mon Aug 13, 2007 10:48 pm

Post » Thu Feb 11, 2010 9:35 am

Just to add to the 'suppress message' discussion, using player.RemoveAllItems won't show any message if I remember (just like how it's used as the player is
Spoiler
ambushed by the Enclave
, no message spam there), but ref.RemoveAllItems player will give a message spam. Now, what happens when the player exits the simulation? It's a while since I played it, but I think he got all items automatically, or did he ('I') had to take them from the DLC02PlayerContainerRef?

Artorp
User avatar
Danger Mouse
 
Posts: 3393
Joined: Sat Oct 07, 2006 9:55 am

Post » Wed Feb 10, 2010 6:16 pm

Hi - I finally got around to looking at my problem with GetOpenKey again, and I have some fairly detailed info now.

I first tried the same script behippo posted http://www.gamesas.com/bgsforums/index.php?showtopic=1022357&st=140&p=15076747&#entry15076747, and then also modified it to get some more info, including checking any linked door. I'll post the code below, but here are two examples - one not working (http://fookunity.com/fook_team/HugePinball/img/LucasDoor01.gif) and one working (http://fookunity.com/fook_team/HugePinball/img/MegPlayerDoor.gif).

Here's the quest script I had running to test these:

ScriptName GetOpenKeyTestScriptref rTargetref rLinkedref rKeyBegin GameMode			if rTarget != GetCrosshairRef		set rTarget to GetCrosshairRef		if rTarget			PrintC "GetOpenKey Test on: %i (%n)" rTarget, rTarget			set rKey to rTarget.GetOpenKey			PrintC "OpenKey: %i (%n)" rKey, rKey						set rLinked to rTarget.GetLinkedDoor			PrintC "Linked Door: %i (%n)" rLinked, rLinked			set rKey to rLinked.GetOpenKey			PrintC "OpenKey: %i (%n)" rKey, rKey		endif	endif	End


I had hoped checking the linked doors would solve the problem, but as seen above, it didn't. I'm not sure what else I should be trying to do at this point - any ideas?
User avatar
carla
 
Posts: 3345
Joined: Wed Aug 23, 2006 8:36 am

Post » Thu Feb 11, 2010 7:12 am

Does String Variables means something like GetName might get in too? I would love to use that to get the name of the player.
(as GetPlayerName leads to unexpected results if you don't read the description :)...)
If there is something that does that already I would like to know that as I couldn't find anything that could...
User avatar
Emma Copeland
 
Posts: 3383
Joined: Sat Jul 01, 2006 12:37 am

Post » Thu Feb 11, 2010 8:15 am

I'd imagine that a GetName function will accompany the implementation of string variables. After all, there's a GetName function in OBSE so it's likely to be an easy port. Due to the current lack of string variables there are no functions that will return strings. At the moment format strings can only be used directly as function parameters.

Cipscis
User avatar
Robert Bindley
 
Posts: 3474
Joined: Fri Aug 03, 2007 5:31 pm

Post » Wed Feb 10, 2010 10:58 pm

The Real-Time Settler mod already found a way to name a map marker "'s Village". Anybody know how they did that?

Edit: Also, I tried looking through the mod in the CS but couldn't find out how. Maybe I could just ask them.
User avatar
Kevin Jay
 
Posts: 3431
Joined: Sun Apr 29, 2007 4:29 am

Post » Thu Feb 11, 2010 5:56 am

Whenever the following string is used, it will be replaced with the player's name:
&PCName;
Note that it's not completely replaced by the player's name - if their name changes later then "&PCName; will reflect this change. I assume that this is how the map markers have been named like that.

Interesting fact - if you use the console to save a game with "&PCName;[/code] in the title it will show the name of your current character if you attempt to load it from in-game. If you try to load it from the main menu, "[font="Courier New"]&PCName;" will be replaced by a blank string.

Cipscis
User avatar
amhain
 
Posts: 3506
Joined: Sun Jan 07, 2007 12:31 pm

Post » Wed Feb 10, 2010 9:23 pm

The GECK is crashing when I try to save this script. I'm using the FOSE beta and I do have the GECK running through a loader shortcut.

ScriptName DisplayedAmmoWeightIMScriptShort previousWidthShort widthBegin MenuMode 1002	Set width To GetUIFloat "InventoryMenu\GLOW_BRANCH\IM_MainRect\IM_IconFilenameText\width"	If previousWidth != width		Set previousWidth To width		SetUIFloat "InventoryMenu\_OriginalWeightVisible" 0		SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 0		If width == 234			; 5.56mm Round			SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 1			SetUIString "InventoryMenu\_ReplacementWeight" "0.05"		ElseIf width == 218			; 10mm Round			SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 1			SetUIString "InventoryMenu\_ReplacementWeight" "0.03"		ElseIf width == 185			; Microfusion Cell			SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 1			SetUIString "InventoryMenu\_ReplacementWeight" "0.05"		ElseIf width == 189			; Energy Cell			SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 1			SetUIString "InventoryMenu\_ReplacementWeight" "0.03"		ElseIf width == 214			; Mini Nuke			SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 1			SetUIString "InventoryMenu\_ReplacementWeight" "3"		ElseIf width == 186			; .32 Caliber Round			SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 1			SetUIString "InventoryMenu\_ReplacementWeight" "0.03"		ElseIf width == 213			; Shotgun Shell			SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 1			SetUIString "InventoryMenu\_ReplacementWeight" "0.1"		ElseIf width == 116			; BB			SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 1			SetUIString "InventoryMenu\_ReplacementWeight" "0.01"		ElseIf width == 265			; Alien Power Cell			SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 1			SetUIString "InventoryMenu\_ReplacementWeight" "0.03"		ElseIf width == 127			; Dart			SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 1			SetUIString "InventoryMenu\_ReplacementWeight" "0.01"		ElseIf width == 190			; Flamer Fuel			SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 1			SetUIString "InventoryMenu\_ReplacementWeight" "0.05"		ElseIf width == 266			; .44 Round, Magnum			SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 1			SetUIString "InventoryMenu\_ReplacementWeight" "0.05"		ElseIf width == 151			; Missile			SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 1			SetUIString "InventoryMenu\_ReplacementWeight" "1"		ElseIf width == 216			; Railway Spikes			SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 1			SetUIString "InventoryMenu\_ReplacementWeight" "0.05"		ElseIf width == 184			; Mesmetron Power Cell			SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 1			SetUIString "InventoryMenu\_ReplacementWeight" "0.1"		ElseIf width == 222			; .308 Caliber Round			SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 1			SetUIString "InventoryMenu\_ReplacementWeight" "0.05"		ElseIf width == 177			; 5mm Round			SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 1			SetUIString "InventoryMenu\_ReplacementWeight" "0.01"		ElseIf width == 200			; Electron Charge Pack			SetUIFloat "InventoryMenu\_ReplacementWeightVisible" 1			SetUIString "InventoryMenu\_ReplacementWeight" "0.05"		Else			SetUIFloat "InventoryMenu\_OriginalWeightVisible" 1		EndIf	EndIfEnd


I have similar scripts for other menus that don't crash:

ScriptName DisplayedAmmoWeightBMScriptShort previousWidthShort widthBegin MenuMode 1053	Set width To GetUIFloat "BarterMenu\NOGLOW_BRANCH\BM_IconFilenameText\width"	If previousWidth != width		Set previousWidth To width		SetUIFloat "BarterMenu\_OriginalWeightVisible" 0		SetUIFloat "BarterMenu\_ReplacementWeightVisible" 0		If width == 234			; 5.56mm Round			SetUIFloat "BarterMenu\_ReplacementWeightVisible" 1			SetUIString "BarterMenu\_ReplacementWeight" "0.05"; ...and so on


You can see that they're mostly identical. I've isolated the crash to this line:

Set width To GetUIFloat "InventoryMenu\GLOW_BRANCH\IM_MainRect\IM_IconFilenameText\width"

If change the argument string to pretty much anything else, it doesn't crash.
User avatar
Leilene Nessel
 
Posts: 3428
Joined: Sun Apr 15, 2007 2:11 am

Post » Wed Feb 10, 2010 11:51 pm

The GECK is crashing when I try to save this script. I'm using the FOSE beta and I do have the GECK running through a loader shortcut.

[snip]

I've isolated the crash to this line:

Set width To GetUIFloat "InventoryMenu\GLOW_BRANCH\IM_MainRect\IM_IconFilenameText\width"

If change the argument string to pretty much anything else, it doesn't crash.

It's almost certainly due to a bug in the GECK compiler (carried over from TES:CS) which causes a buffer overrun when relatively long strings are passed as function arguments.
I am not at home at the moment so I can't check for possible solutions for you, but I will try to take a look in the near future.
User avatar
Josh Lozier
 
Posts: 3490
Joined: Tue Nov 27, 2007 5:20 pm

PreviousNext

Return to Fallout 3