|
|
  |
TK's Mod Questions Thread, Got mod problems, or are you just lost with a tool? |
|
|
haute ecole rider |
May 15 2011, 09:57 PM
|

Master

Joined: 16-March 10
From: The place where the Witchhorses play

|
I'm trying to do it by typing save "savegamename" at the command console. With the console still open, I've tried escaping to bring up the typical game menu (with the race menu still open) and the save option is greyed out there as well. Here's what the UESP wiki says about the showracemenu command in the console: QUOTE WARNING: Using this menu will reset all of your skills to their default initial settings. (If you edit your race, instead of clicking 'done' when you are done, leave the race menu open with the console up and save your game. When you reload it your race/looks will be changed like you wanted them to be and your skills will not be reset.) . . . Your new racial abilities, benefits and weaknesses do not seem to be awarded properly when you use this menu, although the old ones are removed.
I haven't reloaded the game because I haven't been able to save with the race menu still open, and I'm afraid of losing (it's a recent save, but not the last one, as I'm being cautious here!) I don't overwrite the save game when I get the error message, I just hit 'done,' close the console, look at my stats, then quit without saving the file. When I go back to the same savegame, it's back to its original settings, and nothing is changed on my character. I just don't want to save the file with all my XP and skills lost. My PC has worked so hard to get to where she is!
--------------------
|
|
|
|
SubRosa |
May 22 2011, 07:01 PM
|

Ancient

Joined: 14-March 10
From: Between The Worlds

|
I have a scripting issue in Fallout 3. I created a mod to play as a ghoul, and altered the radiation effects so they are positive rather than negative. This way my ghoul gets stronger the more irradiated she becomes. To keep it from being overpowering, I want her to lose rads slowly throughout the day. Otherwise she is just going to max out her radiation level at some point and have a huge permanent bonus. So I created a script with a timer that will decrease her radiation, plus a quest that starts the game to trigger the script. My problem is the script runs once and ends. I need something that is always running. Or that runs once a day. Or even runs every time the character sleeps (since I sleep once a day, that would do the same thing). This is my base script, which knocks down her radiation. I do not understand the timer part of it. But I have verified it works. CODE ScriptName GhoulRadDecrease float fTimer int iStage
begin gamemode
if fTimer > 0 set fTimer to fTimer - GetSecondsPassed elseif iStage == 0 ; Stage 0 set iStage to 1 set fTimer to 3 elseif iStage == 1 ; Stage 1 set iStage to 2 set fTimer to 1 elseif iStage == 2 ; Stage 2 set iStage to 3 player.ModActorValue radiationrads -1 endif end Now I have tried inserting the set fQuestDelayTime to 60 under begingamode, thinking that it would make the script run the quest every 60 seconds. But that does not work. I have also tried adding in ResetQuest GhoulRadiationDecrease to the end of the script, but that also does not cause the quest to re-run itself. Here is an example of where I put both those: CODE ScriptName GhoulRadDecrease float fQuestDelayTime float fTimer int iStage
begin gamemode
set fQuestDelayTime to 60
if fTimer > 0 set fTimer to fTimer - GetSecondsPassed elseif iStage == 0 ; Stage 0 set iStage to 1 set fTimer to 3 elseif iStage == 1 ; Stage 1 set iStage to 2 set fTimer to 1 elseif iStage == 2 ; Stage 2 set iStage to 3 player.ModActorValue radiationrads -1 endif ResetQuest GhoulRadiationDecrease end So how can I get this script to either run constantly, or the quest to restart at regular intervals?
--------------------
|
|
|
|
Thomas Kaira |
May 22 2011, 07:19 PM
|

Mouth

Joined: 10-December 10
From: Flyin', Flyin' in the sky!

|
You haven't set your script to loop. Once you hit the third stage, you do not have a block that resets the iStage variable back to 0 so that the script can start over, so the script stops processing there. Try this: CODE ScriptName GhoulRadDecrease float fTimer int iStage
begin gamemode
if fTimer > 0 set fTimer to fTimer - GetSecondsPassed elseif iStage == 0 ; Stage 0 set iStage to 1 set fTimer to 3 elseif iStage == 1 ; Stage 1 set iStage to 2 set fTimer to 1 elseif iStage == 2 ; Stage 2 set iStage to 3 player.ModActorValue radiationrads -1 set fTimer to 60 ;script loops if none of the above conditions are met else set iStage to 0 endif
end This should ensure that iStage gets set back to 0 if none of the above conditions are met so that the script can loop properly. I've also added in that 60 second timer you wanted, as well. Good to see Fallout scripting is similar to Oblivion scripting, at least. The only major difference I see in here is they changed short variables to int variables, but the syntax is exactly the same. This post has been edited by Thomas Kaira: May 22 2011, 07:46 PM
--------------------
Rarely is the question asked, is our children learning?
|
|
|
|
mALX |
May 23 2011, 04:07 AM
|

Ancient

Joined: 14-March 10
From: Cyrodiil, the Wastelands, and BFE TN

|
QUOTE(SubRosa @ May 22 2011, 02:33 PM)  That did the trick! Medusa thanks you from the bottom of her dessicated heart. @ Subrosa - GAAAAH! Er...she is...pretty for a ghoul...urg. @ Chef TK - I am hugely impressed (and envious) by your grasp of the scripting in such a short time - I am completely lost. * Trying to make my pet mouse like sweetrolls (and be drawn to them if he enters a room that has any) I was hoping to make him fat and change his name to Alix too, but haven't had the time to play with it at all yet.
--------------------
|
|
|
|
Thomas Kaira |
May 23 2011, 06:30 AM
|

Mouth

Joined: 10-December 10
From: Flyin', Flyin' in the sky!

|
@King Coin:Should be easy enough with OBSE at your fingertips: CODE scn myScript
float fQuestDelayTime
begin gamemode let fQuestDelayTime := 0.001 if OnKeyDown XX == 1;set XX to the DX Scancode number for the key you want. playSound mySoundID endif end List of DX Scancodes hereI'm assuming you want to be able to get your character to be able to say certain lines of dialogue when you press the key. If so, you are going to need to add the voice sound to the game's sound library in order to do this; you can't call files directly with scripts (unlike when assigning a voice snippet to a line of dialogue). @mALX: Are you trying to do that in-game? If so, I'm not sure about drawing him to sweetrolls at this point, but you can change his name by using the command "setactorfullname mynamehere" in the console with your friendly rodent selected. This post has been edited by Thomas Kaira: May 23 2011, 06:33 AM
--------------------
Rarely is the question asked, is our children learning?
|
|
|
|
mALX |
May 23 2011, 07:01 AM
|

Ancient

Joined: 14-March 10
From: Cyrodiil, the Wastelands, and BFE TN

|
QUOTE(Thomas Kaira @ May 23 2011, 01:30 AM)  @King Coin:Should be easy enough with OBSE at your fingertips: CODE scn myScript
float fQuestDelayTime
begin gamemode let fQuestDelayTime := 0.001 if OnKeyDown XX == 1;set XX to the DX Scancode number for the key you want. playSound mySoundID endif end List of DX Scancodes hereI'm assuming you want to be able to get your character to be able to say certain lines of dialogue when you press the key. If so, you are going to need to add the voice sound to the game's sound library in order to do this; you can't call files directly with scripts (unlike when assigning a voice snippet to a line of dialogue). @mALX: Are you trying to do that in-game? If so, I'm not sure about drawing him to sweetrolls at this point, but you can change his name by using the command "setactorfullname mynamehere" in the console with your friendly rodent selected. Yes, the mouse is a mod I DL'd. He only eats healthy food through the journal/menu - I would like to have him eat sweetrolls where you could see him doing it in game - and be drawn to them if they are in a room he enters. Oh, thanks for the console code - since it is someone's mod, will renaming him through the console mess with his script (as it is now) working properly?
--------------------
|
|
|
|
King Coin |
May 23 2011, 07:33 AM
|

Master

Joined: 6-January 11

|
QUOTE(Thomas Kaira @ May 23 2011, 12:30 AM)  @King Coin:Should be easy enough with OBSE at your fingertips: CODE scn myScript
float fQuestDelayTime
begin gamemode let fQuestDelayTime := 0.001 if OnKeyDown XX == 1;set XX to the DX Scancode number for the key you want. playSound mySoundID endif end Only difference between my code and yours is "let fQuestDelayTime := 0.001." I'll try it with that added tomorrow. Why is that part important?
--------------------
|
|
|
|
Thomas Kaira |
May 23 2011, 08:23 AM
|

Mouth

Joined: 10-December 10
From: Flyin', Flyin' in the sky!

|
That tells the game how quickly it should process the script if it's a quest script. These are the exception to the script processing speed rules. Normally a GameMode script will process every frame, but quest scripts a bit different... they default to updating every five seconds.
If you don't put a value in there, the default takes over (probably why your key presses weren't registering, because the script was updating too slowly to catch them). Setting it to 0.001 (100 times per second) will ensure that the script runs every frame, but you can set the value higher if you want.
EDIT: Also, the game does not begin processing quest scripts immediately after launch, there is a bit of a "warm-up" period before the game starts processing quest scripts.
This post has been edited by Thomas Kaira: May 23 2011, 08:39 AM
--------------------
Rarely is the question asked, is our children learning?
|
|
|
|
|
  |
5 User(s) are reading this topic (5 Guests and 0 Anonymous Users)
0 Members:
|
|