Jump to content

Tefnacht

Members
  • Posts

    75
  • Joined

  • Last visited

Everything posted by Tefnacht

  1. Hi. While I have never attempted to disable so many objects at runtime myself, I don't really think the game crashing has anything to do with the actual number of disabled objects. Some questions: The objects you disable are vanilla objects, I assume? Part of the original Wrangler interior? You said they're all statics. No furniture? No doors? How do you disable them? I assume you have a few persistent objects and “enable parented” all others to those? Or ... did you actually make them all persistent references and disable them one by one? Eww. In either case, was any one of those vanilla references marked as persistent before you edited it? Disabling a persistent reference that is used as a target for actor AI packages can cause the game to crash if the actor attempts to run that package. Stupid question but: While testing your mod ... do you have any other mods loaded? I know, I know, you should never do that. Just a thought. It could be possible that another mod (that also does changes to the Wrangler) is now crashing the game because your mod overrides some of the changes it depends on (like making certain objects persistent and using them as AI package targets). Well ... no idea. Maybe there IS a limit how many references can be disabled in a cell at once. But I really don't think so. It would bet my money on some other, more mundane cause.
  2. I am pretty sure “State” is a local script variable in the script attached to the base object of the “wallREF” reference and he simply wants to set it to 0 from some other script. With “wallREF.set State to 0” you got it “almost” right. It is just that the Set command is not a function called by reference. I wouldn't even call it a function, it is more of a language construct, like “End” and “If”. The correct syntax is: “Set wallREF.State To 0”. This will work, assuming the base object that wallREF references has a script attached that includes a local variable called “state”. What Glenstorm explained is very true, however. If you want to call a function on a object other than the one your script is running on, you would do it like he described. Good luck.
  3. Hi. I am not sure if I understand exactly what you want. I assume it is this: Once the player sits down on seatREF for more than fife seconds you want some of his controls disabled and the door to animate? If he stands up again before the fife seconds are up nothing should happen. Is that it? Then this snippet should do what you want: Short doonce ;set to 1 once the timed event happened Float fTimer ;timer to count up Begin GameMode If doonce == 0 ;if the timed event was not yet triggered If Player.IsCurrentFurnitureRef seatREF ;if the player is sitting on the seat Set fTimer To fTimer + GetSecondsPassed ;increment the timer If fTimer >= 5 ;if the timer ran for 5 seconds or more Set doonce To 1 ;prevent the event form happening again doorREF.PlayGroup Backward 0 ;start the door animation DisablePlayerControls 1 1 1 0 0 1 1 ;disable some player controls EndIf Else ;otherwise the player is not sitting on the seat Set fTimer To 0 ;reset timer to zero EndIf EndIf End If it isn't, you should maybe explain what you want to happen in a few more words. One word of general advice: If you work with floating point numbers, you should always avoid the == (equal) operator like the plaque and use >= (greater or equal) and <= (less or equal) instead. “fTimer == 0” would only be true if fTimer is really exactly 0 which is usually very unlikely with a floating point number modified by GetSecondsPassed (which is also a small float). It could be 0.0021 on first pass, which is not == 0 and then -0.0033 on second pass which is also not == 0. == (equal) and != (not equal) should usually only be used with integer numbers (short, long or int), never float. I hope this helps you. Good luck.
  4. Hello again, sorry for the delay, I had a busy weekend. I am working on a faction mod (allowing the player to start his/her own faction in the Mojave) using a lot of animated pair poses. Shaking hands, high fife, hugging, kissing ... well, yeah and more naughty stuff. Since all those animations have both actors touching each other in one way or another, the two animations need to be precisely concerted or there will be clipping. Or the animations just look plain stupid. For example, one actor of height 1.1 shaking hands with another actor of height 0.9 looks incredibly ridiculous, because they just wave their hands up and down without actually joining hands ... since the animations were made for two actors of height 1.0. I am looking for a way for my animation controller script to detect the actors height and use a different set of animations in such a case. Since I cannot create animation sets for EVERY height combination, my plan was to create seven animation sets for each pose (1.0/1.0, 0.9/1.0, 1.0/0.9, 1.1/1.0, 1.0/1.1, 0.9/1.1 and 1.1/0.9), choose the closest matching pair for the actors involved and then temporarily adjust their scale for the time the animations are playing. This whole effort is meant for scripted cinematic sequences, so I can hide the involved actors “growing” or “shrinking” off camera. But ... to do the math and adjust their scale I need to know their original height to begin with. Many of those cinematic animations involve predetermined actors. But I have a few (like the “new member introduction sequence” or the “funeral”) that can involve any combination of actors, whoever the player recruited. Those are the ones giving me a headache.
  5. Well, that is pretty much the reason I assumed GetScale is not really meant for actors. The script I am working on is supposed to work with vanilla NPCs as well as those added by other mods than my own (and with the player). Therefore creating NPCs with a Height of 1 and scaling the reference is not an option, since I don't create the NPCs myself. Rickerhk's idea of using GetScale on the base object is a very good idea, but it doesn't work. After doing some thorough testing I have to report that using GetScale on a base object (any base object) simply kills the script. The script engine stops processing the script and will never execute it again. I suppose this is because GetScale reports the reference scale, like GetPos reports the reference world position and a base object just does not have any of this data. Of course I went over the GECK wiki forward and backward before posting my question. “Height” is not among the values reported by GetBaseActorValue or GetActorValue or any of the other “3 billion” listed functions. At least I couldn't find it. ;) Hm ... well, I guess my only way around this is to create a bunch of formlists for each actor height other than 1.0 and then check my target actors base object against all those lists to see if their base height is shorter or larger than 1.0. Not the most elegant method, but at least it should work for all vanilla actors, once I got them all listed. Maybe NVSE will some day give access to the second value reported by the GetScale console command. Hope dies last :)
  6. Hello. You don't really need a mod to achieve this. The “speed of time” in the game is controlled by a global variable called “TimeScale”. By default, it is set to 30, meaning the ingame time runs 30 times faster than normal time. 1 second realtime would be 30 seconds in the game. 2 seconds would be a minute. 2 minutes would be an hour ... 48 minutes is a whole day (24 hours). Using the console you can change TimeScale to suit your needs. Open the console and type “Set TimeScale To x”. x would be however fast you want the ingame time to pass. Personally I like playing with a TimeScale of 6 (Set TimeScale To 6). A whole day then takes 4 realtime hours. If you're playing in hardcore mode, changing TimeScale has some odd side effects. For example, with a TimeScale of 6, after sleeping for 8 hours, I am always incredibly thirsty and hungry once I wake up. Close to starvation actually. Hardcore mode doesn't seem to work too well with a changed TimeScale. At rare occasions, the game will reset TimeScale back to 30. It doesn't happen often. Some quests play around with this variable and might reset it. To see you current TimeScale, open the console and type “Show TimeScale”. Have fun.
  7. Hello fellow modders. I am looking for a way to make my script detect non-standard sized actors. The huge majority of human actors in the game are of the same height. There are some exceptions though. Some are taller, other smaller. The Gomorrah Floor Manager for example is a “shorty”. He is 1/10th smaller than normal actors. However, the GetScale script command ALWAYS returns 1.0. On any actor. The only exception being an actor who was previously resized with the SetScale command. In this case GetScale returns whatever value I used with SetScale. Taking the Gomorrah Floor Manager as an example again: Using the script command GetScale on him returns 1.0. Using GetScale on him in the console yields this result: “GetScale >> 1.00 (with base 0.90)”. And there it is, right there in parenthesis: 0.90. That is the value I need my script to react to but the GetScale script command doesn't provide this. It always reports 1.0. Help! Is there a trick to make GetScale report the seconds (base) value? Is there a actor value not listed in the GECK wiki I could use with GetBaseActorValue to get this? Maybe NVSE has undocumented commands that could help me out? Anyone? Please? I assume GetScale was not really intended to be used on actors. No idea. Well ... any help or comment is appreciated.
  8. Hello. I am not really sure I understand your question. I assume you want to create some kind of book or tome with three pages and you want the player to skim through it forward and backward by activating it while pressing a cursor key (left or right/forward or backward). Is that right? If I am wrong, you can stop reading now and maybe try to explain your problem once more. :) -- Create your activator objects, but instead of them all using the same script, you write a different (shorter) script for each one of them. SomePoseChapter01CoverRef is initially enabled, the other two are disabled. The first object (SomePosesChapter01Cover) uses a script like this: Begin OnActivate If IsKeyPressed 205 SomePosesChapter01Page001Ref.Enable 0 Disable 0 EndIf End The second object (SomePosesChapter01Page001) uses a script like this: Begin OnActivate If IsKeyPressed 203 SomePosesChapter01CoverRef.Enable 0 Disable 0 ElseIf KeyPressed 205 SomePosesChapter01Page002Ref.Enable 0 Disable 0 EndIf End The third object (SomePosesChapter01Page002) uses this script: Begin OnActivate If IsKeyPressed 203 SomePosesChapter01Page001Ref.Enable 0 Disable 0 EndIf End So ... what is going on here? The first object is enabled. If it is activated while the right cursor key is pressed (“IsKeyPressed 205” returns true) the second object is enabled and the first object disables itself. Since the first object is now disabled, the script attached to it is now dormant. Now the second object is enabled. If it is activated it will either enable the first object and disable itself (the left cursor key was pressed), enable the second object and disable itself (the right cursor key was pressed) or do nothing (no cursor key is pressed). The third script should now be self explanatory ... if the third object is activated while the left cursor key is pressed, it enables the second object and disables itself. Maybe this helps. Maybe I completely misunderstood the question. Anyway: Good luck.
  9. Hello. Console commands like “TCL” or “TFC” can only be used in the console. The script compiler will not accept them when used in a script. I do not know of any workaround using vanilla assets. However, the Fallout Script Extender (FOSE) has some of these “pure” console commands wrapped up into commands usable in a script. Sadly the bad news is that TCL (ToggleCollision) is NOT one of them. The script extender for Oblivion (OBSE) has a “Con_TCL” command. Even the script extender for New Vegas (NVSE) has a “Con_TCL” command. FOSE does not. At least the last version I worked with (1.2 b2) did not have this command. To my knowledge, FOSE has not been updated in quite a while. So ... what am I saying? In Fallout 3 there is, as far as I know, no way to bind the console command TCL to a hotkey. Not yet, anyway. Maybe the next FOSE update will allow this. Personally, I am desperately waiting for a Con_TFIK command being added to both FOSE and NVSE, because FootIK loves to mess up my custom animations during scripted cutscenes and my workaround using SetNumericGameSetting doesn't work as well as simply using “TFIK” in the console. I am sorry. Maybe someone else knows a way to do this ... Good luck.
  10. If you type “COC steelmillcopy” and the console just closes without anything happening, this means a cell with the ID “steelmillcopy” simply does not exist in your game. That is normal “fallback” behavior. Stupid question, but: Are you sure you are actually loading your plugin file into the game when you start it? Just saving your plugin in the GECK is not enough, you have to tell Fallout to use your plugin too. Either by using a mod manager like FOMM or through the game launchers “Data files” menu.
  11. Hello. To COC into a interior cell, you have to provide only the editor ID of your target cell. In your case, typing “COC steelmillcopy” should teleport you into your cell. The cell name you enter into the interior data tab is only the ingame name of the cell that is displayed on your pipboy map. Its more or less just cosmetic. What is important is the editor ID. If you want to change the editor ID, you do a “slow doubleclick” on it in the cell view window. Not a normal doubleclick (this would load the cell into the render window). Leftclick on the Editor ID to highlight it, wait a moment, then leftclick on it again. A cursor will appear and you can change the ID. Good luck.
  12. Hello. Another reason for the object not being selectable in the GECK (assuming it has a valid bhkCollisionObject of course) could be that the root node of the NIF file is not a BSFadeNode. Armor models and animated objects use a “normal” NiNode as their root node. The GECK will accept such a model when placed into the world but you will not be able to “pick” it (select it). The FO3 GECK was nice enough to give a warning about this, the one for New Vegas doesn't bother. Should this be the case, you can use NifSkope to convert the root node. Right click on it, select Block → Convert and choose Bethesda → BSFadeNode. Only the root node (the one at the very top with the index 0) needs to be a BSFadeNode. Good luck.
  13. Hello. Ah, I can remember how difficult it was to find this information when I needed it for Fallout 3. The note from FO3 you're talking about is called HitSquadNoteGoodGuys, by the way :) I have not yet tested this in New Vegas. However, I am pretty certain that it still works because I distinctly remember some dialog lines where my characters name showed up in a dialog choice (Like: “Hello. My name is &PCName;. Who are you?”). I know of three such “variables”. Pay attention to the ampersand at the beginning and the semicolon at the end. They are important. &PCName; -is replaced with the players name &PCRace; -is replaced with the name of the players race (“Caucasian”, “Hispanic”, etc...) &PCSex; -is replaced with either “male” or “female”. Have fun and let us know if they still work :)
  14. Hello. Yes, I tried “MenuTapKey 18” to fake pressing the “E” button. It didn't work, the command is just ignored. I also tried “MenuHoldKey 18”, in case faking the keypress for one frame wasn't enough, then releasing the key with “MenuReleaseKey 18” during GameMode. It didn't work. However, something did happen. When the script printed the debug message to the console that it was now attempting to cancel wait, the hour indicator took a whole second longer to move down to the next hour than usual. But then it continued merrily on its way down. So I tried “HoldKey 18” and “ReleaseKey 18” just in case and of course that didn't work either. Neither did “TapControl 5”. Wait seems to be a very stubborn little menu :) Another thing I tried was using DisablePlayerControls after reading that disabling the Pipboy also disables the wait menu. Well, it does. But not if its already open. The only thing that this command did was triggering autosaving when the timer ran out (while waiting was still in progress). But the wait menu did not close and waiting continued to the end. :wallbash:
  15. Hello. That is pretty much my question. I have a quest that keeps track of GameDaysPassed and is supposed to trigger an event once a certain amount of ingame time has passed. I found four different situations: 1.) The timer runs out during GameMode. The player is just walking around, maybe shooting stuff. No problem here, once the timer runs out the event triggers. 2.)The timer runs out during MenuMode 1007 (the loading screen). The player probably just used fast travel to go somewhere. The event triggers as soon as he reaches the location and goes back into GameMode. No problem here either. 3.) The timer runs out during MenuMode 1012 (wait/sleep). The player is either waiting or sleeping. If he is sleeping (I can check that with IsPCSleeping) I can abort the sleeping process with the WakeUpPC command and then handle the event trigger in GameMode. Works like a charm. 4.) Now comes my problem. If the timer runs out in MenuMode 1012 (wait/sleep) and the player is NOT sleeping, just waiting, I cannot find a way to abort the waiting process. The GECK wiki claims that WakeUpPC would do this but it doesn't. The command is just ignored and waiting continues for as long as the player set it up. Then the event triggers once waiting is over ... which I do not like. In a worst case situation the trigger would be 23 hours too late. Its not really that big a deal ... nothing game breaking ... I just don't like it. I tried a few other things to cancel waiting. Since I use NVSE I had some other commands to experiment with. Con_CloseAllMenus managed to cancel waiting but had a lot of other undesirable results like NPCs spasming around uncontrollably afterwards or simply CTDs. Not an option. MenuTapKey to fake the player pressing the “Cancel” button didn't work either. TapControl is ignored too. That is my situation. Any idea how to cancel waiting? Another thing I noticed while tinkering around with this problem is that the IsTimePassing command doesn't do what the GECK wiki claims either. It is supposed to return 1 during MenuMode while the player either waits, sleeps or fast travels. It doesn't. It returns 1 almost all the time, only message boxes seem to make it return 0. So it seems to be a pretty useless command. Maybe I used it wrong ... who knows :) Any help is appreciated. Even if you just tell me that waiting simply cannot be aborted.
  16. Hello. “VendorChestBuriedMoiraBrown” is a base object, not a reference. Container base objects do not actually contain any items. They are just a template that describes what a container looks like, what items (re-)spawn in it, what script is used and so on. The things that actually store items are references to this base object. If you drop the base object from the object window into the render window, a reference is created. You can have many, many container references all using the same base object, but they all can hold different items at any one time. Since a base object does not really contain any items, GetItemCount cannot return anything sensible. It is a little sad that the script compiler does not warn about this or simply returns 0 ... but it explains why the script silently dies. So instead of calling GetItemCount on the base object, you need to call it on the reference AND that reference must be a persistent one. In this case, we're in luck because vendor chests always need to be persistent and since its a vanilla resource it follows the Bethesda naming convention (meaning the reference has the same name as the base object with the letters REF added to the end). Set moiracaps To VendorChestBuriedMoiraBrownREF.GetItemCount Caps001 should work just fine. I hope this helps.
  17. I don't really want to edit your mod for you ... fine tuning the cutscene would probably be a lot of work and I have my own projects. Sorry. However ... this whole cutscene problem intrigued me. So I cobbled together a small proof of concept mod. Outside Vault101 on the road, a vertibird lands, four enclave soldiers disembark, knock the player down (actually they don't hit him at all, he just drops *g*), fade to black, two sounds play and then the player is teleported into the megaton clinic. Nothing fancy, all done with a single script. If you PM me a email address, I'll send the demo plugin to you and you can take a close look and replicate it yourself. Even use the script if you want. No need to credit me. Anyway, good luck.
  18. Hello. Some interesting questions. I cannot give you a “complete” working solution but maybe I can send you into the right direction. Vertibird landing: The landing Vertibird used in the game during a few random encounters is a activator with a animated model. It has a “Idle” animation (its rotors rotating), a “Forward” animation (the bird landing), a “Backward” animation (the bird taking off) and a “Left” animation (the bird resting on the ground). One example of such an activator is called “FFER62VertibirdEncounter” which also has a short script attached that does part of the landing/takeoff procedure. Another script relevant for those original Vertibird encounters is a trigger script called “GenericVertibirdLandingControlSCRIPT”. Anyway, the basic idea is this: You have a activator using the animated Vertibird model that you place into the gameworld where you want the landed Vertibird to come to rest. This activator is initially disabled. Then you have a trigger scripted to engage the landing, once the player walks into it. The trigger enables the Vertibird activator which then uses the command “PlayGroup Forward 0” to initiate the landing animation. It comes with sounds and all. You use the command “IsAnimPlaying Forward” again and again to check if the landing animation is complete. As long as it returns 1 the animation is still playing. Once it returns 0 the Vertibird has landed and you can continue to the next phase of your script. NPCs disembarking: The NPCs jumping out of the Vertibird should indeed already be there, standing right next to the landing spot, even before the Vertibird landed. But they should be initially disabled. Like the Vertibird itself. Once the bird completed its landing animation, your script enables those actors. They could have a simple “follow the player” AI package. They would “fade in” and then run towards the player. Fade to black: Doing this requires the use of the “ApplyImageSpaceModifier” command. Or “imod” in short. I don't have that much experience with this command, so I don't know all the tricks and traps involved. Image space modifiers can do all sorts of crazy things. They are defined in the object window, under “Special Effects → Imagespace Modifier”. The vanilla game already comes with a modifier called “FadeToBlackISFX”. Using the command “ApplyImageSpaceModifier FadeToBlackISFX” should probably do what you want. To restore normal view, you would use “RemoveImageSpaceModifier FadeToBlackISFX”. You will probably have to do some severe trial and error testing to get what you want. Playing sounds: This at least is relatively easy. The command is “PlaySound”. Sounds you can play with this command must exist in the object window under “Miscellaneous → Sound”. Once you added your sounds there, you can use “PlaySound MySoundName” to play it from your script controlling the cutscene. There is also a “PlaySound3D” command, which gives you more control about sound volume and direction (sound comes from the left, from the right, from behind, etc). Knocking down the player: While I perused through the GECK to write this post, I stumbled upon the vanilla cutscene script where you are captured by the Enclave after retrieving the GECK from Vault 87. I discovered something very interesting there. I know from Oblivion modding that “Player.AddScriptPackage MyPackage” is a very, very bad thing. However, in Fallout this seems to work under specific circumstances. After the stun grenade exploded, they use the command “Player.AddScriptPackage MQ08PlayerFallsDownPackage”. It is a simple Travel package, without target, that just has a idle animation attached (something Oblivion didn't have). Anyway, using this command makes the player drop down. However, it is a 1st person animation which is used here, so you absolutely have to make sure the player is in 1st person view with the DisablePlayerControls command before doing this. Well, those are my two cents on this topic. Maybe it helps you. A cutscene like that isn't exactly a trivial thing to do. Good luck.
  19. Hello. All script variable content is “remembered” and stored in the savegame for as long as the scripted reference exists. This is true for every kind of script, even for effect scripts to a certain degree. The problem is that most scripts are attached to non-persistent references and therefore there is no way to access the variables from outside the script. Quest scripts are an exception, since quests always persist. If you have a quest called MyQuest with a script like this attached: ScriptName MyQuestScript Short foo Float bar Ref actor you can access those variables from ANY other script by using MyQuest.foo, MyQuest.bar and MyQuest.actor. Set MyQuest.foo To MyQuest.foo + 1 Set MyQuest.bar To 3.14151 Set MyQuest.actor To Player A quest with a script like this, one that only defines variables but has no actual GameMode or MenuMode blocks in it, is sometimes called a “variable container quest”. There is a little caution recommended though. Commands Like StartQuest and ResetQuest will reset all the quest script variables to 0. After StopQuest was used, you can still access the variable content. The same can be done with scripted persistent references. Imagine you create a new object. A door. The script attached to this object reads: ScriptName MyDoorScript Short foo Short bar and now you place a reference to this door into the gameworld and make it a persistent reference with the name MyDoorA and a second one, also persistent but with the name MyDoorB. Now in ANY script you can do stuff like this: Set MyDoorA.foo To 6 ;variable foo on MyDoorA is now 6 Set MyDoorB.foo To 2 ;variable foo on MyDoorB is now 2 Set MyDoorA.bar To MyDoorA.foo * MyDoorB.foo ;MyDoorA.bar is now 12 Set MyDoorB.bar To MyDoorA.bar – MyDoorB.foo ;MyDoorB.bar is now 10 You see, both doors use the same base object with the same script. BUT since they're two different references, they each keep their own copy of the variable content. MyDoorA.foo and MyDoorB.foo are different variables. This works with all scripted persistent references. Containers, Actors, Activators. It even works with persistent armor and ingestible references in theory but you need to be very careful. A persistent armor reference placed in the players inventory can cause trouble. A persistent ingestible being eaten is suddenly gone and no longer accessible. One last note: You cannot access variables dynamically in this way. The script compiler will not allow that because it has no way to validate it. Imagine you have a actor object called MyNPC with this script attached: ScriptName MyActorScript Short foo and then place the actor into the gameworld and give that reference the name MyActorRef. Set MyActorRef.foo To 5 ;works, we assign the variable foo specifically for MyActorRef Ref actor Set actor To MyActorRef Set actor.foo To 5 ;does NOT work. By the way, that is one of the reasons why I always write variable names in lowercase and everything else with uppercase letters. If I see something like (lowercase)(dot)(lowercase) I immediately know that is not going to work. Well, that was quite a wall of text. I hope it helps.
  20. Hello. That is quite easy actually. All you have to do is make the trigger script disable the trigger it is attached to. Once disabled, it will never trigger again (unless you enable it again by some other means). ScriptName OneTimeTriggerScript Begin OnTriggerEnter ;... ; do your stuff ;... Disable End Note that the above script will also be triggered by creatures and NPCs. If you want only the player to trigger the script once, change the line “Begin OnTriggerEnter” to “Begin OnTriggerEnter Player”. Another note: The Disable command works like a Return command if used on the object the script is attached to. In this case, any more script commands coming after the Disable command would never be executed. Have fun.
  21. Hello. I know this is not what you want to hear but here it goes anyway: You're doing something wrong. No idea what. Just ... something. Duplicating a cell and then editing the duplicate does not cause the original to become marked as changed. If that would be the case, someone would have reported that problem years ago, don't you think? :) You must have done something to the original cell. Maybe you moved those doors a tiny little bit by accident while looking at them. Maybe you looked at the doors reference data to learn how they're linked and closed the dialog with “Ok” instead of “Cancel”. Maybe you pressed some hotkey I don't know about. (The GECK render window has so many hotkeys ... I discover new ones every week). In short: I really have no idea what caused your Vault108a cell to get marked as changed. Or why it is just those doors. I can guarantee its not the duplication process. The bad news: Using the GECK you cannot undo this. Once a cell change is committed to the plugin, it is there to stay. The good news: Problems like this can be solved with FO3Edit. Using this priceless utility, you can remove that unwanted changes from your plugin and continue modding on your latest version. Here is how its done: I leave downloading and “installing” the program to you. There isn't much installing to do. Just download, unzip to some folder and run. I don't remember if you have to tell it where your Fallout is located but I don't think so. If you're using Vista, make sure the UAC access rights are set correctly or run it as admin. Okay. Make a backup of your file before proceeding in case something goes wrong. - Launch FO3Edit. The Master/Plugin Selection window will open. - Rightclick into the window and choose “Select none”. All checkboxes get unchecked. - Go through the list and locate your plugin file (it is probably at the very bottom). Tick the checkbox besides it and then click “Ok”. FO3Edit will start the loading process. - Wait. - Wait some more until the status bar at the bottom reads: “Background loader: finished”. - In the left list, extend the content tree of your plugin file by clicking the plus besides it. A lot of branches will show up, the number depending on how much different content your file contains. We are only interested in the branch called “Cell”. Locate it and extend it. - The “Cell” branch contains all the information your plugin has about indoor cells. Cells are organized in Blocks and Sub-Blocks. Keep extending sub branches until you find a entry with the name “Vault108a” in the “Editor ID” column. In this case it should be under: “Block 9” → Sub-Block 2”. - Once you located the entry for “Vault108a”, rightclick on it and choose “Remove”. A warning will pop up. Select “Yes I'm absolutely sure.” Another warning will pop up and ask you if you really want to permanently delete it. Choose “Yes”. - The “Vault108a” entry should be gone and your plugins name, “Cell”, “Block 9” and “Sub-Block 2” should be in a bold font now, because they're changed. - Close FO3Edit. A window will open called “Save changed files:” with just your file in it and a ticked checkbox besides it. That is good. Click “Ok”, FO3Edit will save the changes and close. - Done. If you load your mod into the GECK now, the asterisk besides “Vault108a” should be gone. Your mod is “clean” again and you can continue your work. Good luck and have fun.
  22. Hello. The only real difference between a ESM and a ESP file is a single bit flag in the file header. I suppose you did a master update? All it does is add that bit flag to all the ESP files (after doing some thorough checking that no severe conflicts exist). Before proceeding, you should make a backup of your plugin file, just in case something goes wrong. FO3Edit always makes a backup by itself but ... to be on the safe side create one yourself too. :D Open the file in question with FO3Edit. Extend the content tree of the file in question and select “File Header”. On the right side, at the very top, you will see “Record Header”, containing “Signature”, “Record Flags” and “FormID”. To the right of “Record Flags”, in the next column, you will see “ESM”. Rightclick on that and choose “Edit”. In the warning that pops up you choose “Yes I'm absolutely sure”. A new window will open containing a lot of check boxes. The one at the very top is called ESM and should be the only one ticked. Untick it and click “Ok”. Now “Record Header” and “Record Flags” should be displayed in a bold fond (because they are changed) and the “ESM” should be gone. Close FO3Edit. A new window will open called “Save changed files”. You should only see your file there, with a ticked checkbox next to it. That is good. Click “Ok” in that window and FO3Edit will save your changes and close. Done. Now your ESP is a real ESP again and the GECK will load and edit it. You can actually do the reverse too and add the ESM flag manually. If you know what you're doing, that is a lot faster than doing a master update every time. I hope this helps you. Good luck and have fun.
  23. Hello. To assign armor addon items to a normal armor item, you have to take a detour through a form-list. The armor item editor has a drop down list selector at the bottom left corner that is called “Biped Model List”. It contains all currently available form lists that include armor and addon items and you can select the one that contains the armor addons you want the armor to use. The hellfire powerarmor gloves are listed in a form list called “DLC03ArmorEnclaveList”. To make your own power armor use them, just select that list in the “Biped Model List” drop down selector of your own armor. If you want to use your own gloves, you need to create a new form list. First step: Create the two armor addon items (under Items → Armor Addon). One for the left glove, another for the right. Make sure the Biped Object is correctly set to Left Hand / Right Hand respectively. Lets assume you called them MyPowerGloveL and MyPowerGloveR. Second step: Create a new form list including those two items. Browse the object window to Miscellaneous → Form List, right click and select “New”. Give the list a name, “MyPowerArmorList” for example. Now keep the form list editor window open and browse the object window back to the armor addon item list. Drag and drop both gloves from the object window into the form list editor. Now the list should contain “MyPowerGloveL” and “MyPowerGloveR”. Click “Okay” to close the form list editor. Third and last step: Assign the new list to your power armor. Open the “real” armor item and select “MyPowerArmorList” in the “Biped Model List” drop down selector. Make sure the “real” armor does NOT use the Left Hand and Right Hand slots. Click “Ok”. Done. I hope this helps. Have fun.
  24. Hello. How about this: You create one single container, make it a persistent reference and place it where you want the first box to be. Then you create an activator using a container model (or whatever else you want the second box to look like), place it in a different cell where you want the second box to be and script its OnActivate block to activate the persistent container instead of itself. Script RemoteContainerActivatorScript Begin OnActivate If GetActionRef == Player PersistentContainerRef.Activate Player EndIf End When the activator is used by the player, you will hear the persistent containers opening sound and the container menu will appear. If you want the “fake” container to animate (like opening a drawer or a locker door) you will have to fancy up the script a little. Good luck.
  25. Hello. That is a pretty unusual problem you have there. I recently did my own retexture of a vault suit, because I needed a different number on the back. To do that I only edited the files you mentioned. Of course I did not change the suits color ... so I have no idea if my changes would apply to the sleeves/arms or not. But I know the vaultsuit .Nif files only uses that one texture file outfit101m/outfit101f respectively. I might have an idea what causes this ... but if I am right it should affect the whole suit, not just the arms. The GECK has a “texture override” function. Vault suits are a good example for this. If you look closely at the VaultSuit106 armor item, you will notice that it uses the same model files for male and female as the VaultSuit101 item. If you edit the male biped model of the 106 suit, you see that the “Alternate Textures” list specifies “VaultSuit106M” as a “New Texture” for some parts of the mesh. This is a pretty neat function because it allows us to retexture items without the need to actually have a new copy of the item present on the harddisk. A form of recycling, if you like. One of the parts that is assigned a new texture is “Arms”. So you see where I am going with this. If you changed the texture for the 101 suit to be red and the armor item you created (copied?) still has a alternate texture assigned for arms, they would still show up as blue. ... but I really don't see how this could happen only for the arms. All vanilla vault suits either have no alternate texture at all, or they change the upperbody part too. Well, I don't know. Check anyway if your armor item has a alternate texture assigned for the arms. Maybe something glitched. Another thing I could think of (which would be a pretty noobish mistake) is that you converted your .PSD back to .DDS without applying all layers first? Maybe the DDS texture really still has blue sleeves? Ya ... I know. Stupid idea. That is probably among the first things you checked. Anyway: Paint.NET can natively open DDS files without the need to convert them first. Maybe you download that and take a look. Just in case :D Other than those two things, I have no idea what could cause this. Good luck.
×
×
  • Create New...