palasprince Posted July 20, 2009 Share Posted July 20, 2009 Hey there modders, maybe you can give me a hand. I've been working on a mod of my own lately and so far it's coming along great, but I've run into an issue. I don't know if there really is a way to fix this, but here goes. The first thing I want to do is disable the repair function from the pipboy entirely. I know I could make weapons last forever, but that's not what I'm shooting for, I want to only be able to do repairs from workbenches. So is there some tool other than the GECK I'd need to acomplish this? Is it buried somewhere in the GECK that I have yet to find? Or is it simply 'impossible' at this point? Much obliged. :) Link to comment Share on other sites More sharing options...
Skree000 Posted July 20, 2009 Share Posted July 20, 2009 anything is possible with the FOSE (Fallout Script extender). ... anything. Check it out, its definitely what you need to accomplish your goal! (Not to say you cant do without it, but its definitely going to get you there quickest!) Im going to have to use it eventually for my mod too. Its an evil we all must endure at some point, the punishment for having lofty goals for our mods, and dreaming of better things :) Link to comment Share on other sites More sharing options...
palasprince Posted July 20, 2009 Author Share Posted July 20, 2009 I have FOSE installed for some of the mods I use, but I haven't seen how to impliment it in my own mods. Maybe I'm mildly retarded ha, but is there a half decent guide so I understand the basics? Link to comment Share on other sites More sharing options...
TheChan Posted July 21, 2009 Share Posted July 21, 2009 Couldn't you remove the items from the repair lists? Link to comment Share on other sites More sharing options...
palasprince Posted July 21, 2009 Author Share Posted July 21, 2009 I could except that I do want the items to be repairable, just not from the pip boy. A slightly bigger view of what I'm doing is that I consider it a little bit unrealistic that out in the middle of nowhere with few to no tools you can perform repairs on equipment of the same quality that you could if you were say in your house in megaton. My idea to remedy this is to create an aid item that is a sort of on the fly repair kit for emergencies, however it wouldn't be terribly effective. But when you access the repair function through your workbench it would be a lot more effective. So yes, great idea, but I've already thought of it. :) Thanks Link to comment Share on other sites More sharing options...
Cipscis Posted July 21, 2009 Share Posted July 21, 2009 The easiest way to disable the repair system available from the player's Pip-Boy would probably be to use DisableKey and EnableKey to prevent the player from using the "R" button while in the appropriate MenuMode. It might also be possible to use FOSE's SetUIFloat or SetUIString in order to prevent the visual prompt from appearing. Cipscis Link to comment Share on other sites More sharing options...
palasprince Posted July 21, 2009 Author Share Posted July 21, 2009 Perfect! Link to comment Share on other sites More sharing options...
palasprince Posted July 21, 2009 Author Share Posted July 21, 2009 Hmm. The DisableKey Option Sounds perfect but I can't figure out how to get it to work. Which I'm sure stems from my lack of understanding of FO3 Scripts. So Maybe I can grab a quick pointer. My script looks like this currently: ScriptName DisableRepair Begin MenuMode DisableKey 19 End Begin GameMode EnableKey 19 End Now I suppose some of my problem is what type of script it should be? I don't fully understand the difference between the three types. I vaguely understand that it should be an object script if it's related to an item, a quest script if it's quest specific and an effect script if it's attached to like an explosion effect. But I want the script to always be runnning... So tell me if I got all my syntax right, then help me figure out how to enable it at all times. Thanks Link to comment Share on other sites More sharing options...
Cipscis Posted July 21, 2009 Share Posted July 21, 2009 From my Scripting for Beginners tutorial:Object Script:Object scripts can be attached to forms that can have references, such as actors, as well as carryable forms, such as weapons. They are reference scripts, and can use reference-specific blocktypes. Object scripts are executed every frame in which the scripted object (or its container, in the case of inventory objects) is loaded.Quest Script:Quest scripts can be attached to quest forms, and are not reference scripts. They cannot use reference-specific blocktypes. Quest scripts have the unique ability to have a script delay time, which defines how often the script will be executed. This is defined in the quest form that the script is attached to, and can be changed via script with the SetQuestDelay function. In order for a quest script to run every frame, the script delay time should be set to a very low value like 0.001.Effect Script:Effect scripts can be attached to base effect forms, which can be used in object effect, actor effect and ingestible forms. Effect scripts are reference scripts, although they are run on the target of the effect as opposed to the scripted form, which would be the effect itself. Because of this, variables declared in effect scripts cannot be accessed remotely. Effect scripts are limited to three usable blocktypes:ScriptEffectStartScriptEffectUpdateScriptEffectFinishFor quests that don't need to run on a specific reference, but instead run "on the game", you'll want to use a quest script. When posting scripts, it helps if you use a "code" or "codebox" tag, as this maintains indentation and forces the script to be written with a fixed-width font, both of which make code much easier to read. That script should work fine, although I would recommend only disabling the key during the inventory menu, so that it won't remain disabled when the game is saved. It would also be worthwhile checking the current state of the key so that DisableKey and EnableKey aren't called every frame (or at least every time the script is processed):ScriptName DisableRepair Begin MenuMode if IsKeyDisabled 19; R if MenuMode 1002; Inventory else; if MenuMode 1002 == 0 EnableKey 19; R endif elseif MenuMode 1002; Inventory DisableKey 1002 endif End Begin GameMode if IsKeyDisabled 19; R EnableKey 19; R endif EndCipscis Link to comment Share on other sites More sharing options...
palasprince Posted July 21, 2009 Author Share Posted July 21, 2009 Thanks! That makes a little more sense. I'll test it out now. And I knew about code boxes, but when I tried to add it in it didn't work, but my internet was being exceptionally retarded too so I'll blame that. :) Link to comment Share on other sites More sharing options...
Recommended Posts