Xokks Posted April 23, 2009 Share Posted April 23, 2009 I'm trying to get my feet a little wet with scripting so I thought a simple enough task would be to make Dogmeat unkillable. He would be able to be knocked down and unconscious for a bit, but would come back to life eventually. Now I thought this would be as simple as ticking the 'Essential' box in the Creature form, but it's already ticked. So what's the deal? Checking on http://geck.bethsoft.com/index.php/Category:Creatures it seems I would have the right idea, but it is possible for Dogmeat to die in Vanilla Fallout3 even though Essential is still checked. Can someone explain this to me? Link to comment Share on other sites More sharing options...
JimboUK Posted April 23, 2009 Share Posted April 23, 2009 I would imagine his essentialness is removed when your hire him or the player may well find him dead before he got the chance to hire him. Link to comment Share on other sites More sharing options...
Xokks Posted April 23, 2009 Author Share Posted April 23, 2009 I figured it has something to do with the Dogmeat script over riding the essential tick. Unfortunately like I said I'm new to scripting and I'm not exactly sure what does what. Can anyone point me in the right direction? Here's the script found for Dogmeat. scn DogmeatSCRIPT ;Follower Variablesshort HasBeenHiredshort WeaponOutshort CombatStyleRangedshort CombatStyleMeleeshort IsFollowingDefaultshort IsFollowingShortshort IsFollowingLongshort Waiting ;Dogmeat Variablesshort Find ;0 = not finding, 1 = searching, 2 = found and should now returnshort FindAmmoshort FindChemsshort FindWeaponsshort FindFood BEGIN OnStartCombat Player set Followers.DogmeatHired to 0 set Followers.DogmeatFired to 1 set DogmeatREF.Waiting to 0 DogmeatREF.SetPlayerTeammate 0 DogmeatREF.RemoveFromFaction FollowerFaction END BEGIN OnCombatEND if ( GetPlayerTeammate == 1 ) resethealth restoreav perceptioncondition 100 restoreav endurancecondition 100 restoreav leftattackcondition 100 restoreav leftmobilitycondition 100 restoreav rightattackcondition 100 restoreav rightmobilitycondition 100 endif END BEGIN OnDeath if ( Followers.DogmeatHired == 1 || Followers.DogmeatFired == 1 ) set Followers.PlayerHasFollower to 0 set Followers.DogmeatHired to 0 ShowMessage FollowerMessageDeadDogmeat endif END Link to comment Share on other sites More sharing options...
Deleted1084753User Posted April 23, 2009 Share Posted April 23, 2009 You're looking in the wrong place. Quests is where you want to be. Specifically FollowersHireDogmeat. Go to the topics tab and look at the 'TakeDogMeat3' entries, down in the Result Script (Begin) box. Link to comment Share on other sites More sharing options...
Xokks Posted April 24, 2009 Author Share Posted April 24, 2009 You're looking in the wrong place. Quests is where you want to be. Specifically FollowersHireDogmeat. Go to the topics tab and look at the 'TakeDogMeat3' entries, down in the Result Script (Begin) box. Tried doing this and still having no luck. Will this work if I have already hired him? I tried taking him straight from waiting at Vault 101 to a fight and he still died. Then I tried walking a bit away from the Vault and tell Dogmeat to go wait at the Vault, met back up with him and told him to follow me and went into another fight - in which Dogmeat died yet again. Here's a picture of what I've changed:http://i41.tinypic.com/168y5gp.jpg I took: DogmeatDad2A, TakeDogmeat3A, TakeDogmeat3B and TakeDogmeat3C ... Then I made sure that in each one in the 'Result Script (Begin)' that "setEssential FFEU255Dogmeat" was equal to 1. With all this done Dogmeat still dies when I take him to a fight and let him go until the point of which he would die. He doesn't appear to be unconscious since the "Dogmeat has died" message still pops up and if I wait a few days he never comes back to life or anything. So what am I missing? It feels like I've done everthing I've supposed to, but perhaps I'm just missing some very simple thing a long the way who knows. To be even more thorough I've included the .esp filehere -> http://www.yousendit.com/download/dVlwSlI1Y3lWRDkzZUE9PQSo anyone can take a look and see if I've made some basic mistake a long the way. Really appreciate any help people can give. Link to comment Share on other sites More sharing options...
Xokks Posted April 24, 2009 Author Share Posted April 24, 2009 Can someone at least take a look at my file or something. This seems like it would be so simple to do yet I'm having problems with something along the way. I'm worried it's probably something simple I've just looked over. Link to comment Share on other sites More sharing options...
BadPenney Posted April 24, 2009 Share Posted April 24, 2009 I modified Dogmeat's script to essentially do what you want without keeping him essential: scn DogmeatSCRIPT ;Follower Variablesshort HasBeenHiredshort WeaponOutshort CombatStyleRangedshort CombatStyleMeleeshort IsFollowingDefaultshort IsFollowingShortshort IsFollowingLongshort Waiting ;Dogmeat Variablesshort Find ;0 = not finding, 1 = searching, 2 = found and should now returnshort FindAmmoshort FindChemsshort FindWeaponsshort FindFood BEGIN GameMode if ( DogmeatRef.GetDead == 1 ) DogmeatRef.Resurrect DogmeatRef.setav health 100 set Followers.PlayerHasFollower to 1 set Followers.DogmeatHired to 1 DogmeatRef.evp endifEND BEGIN OnStartCombat Player set Followers.DogmeatHired to 0 set Followers.DogmeatFired to 1 set DogmeatREF.Waiting to 0 DogmeatREF.SetPlayerTeammate 0 DogmeatREF.RemoveFromFaction FollowerFaction END BEGIN OnCombatEND if ( GetPlayerTeammate == 1 ) resethealth restoreav perceptioncondition 100 restoreav endurancecondition 100 restoreav leftattackcondition 100 restoreav leftmobilitycondition 100 restoreav rightattackcondition 100 restoreav rightmobilitycondition 100 endif END ;BEGIN OnDeath ; if ( Followers.DogmeatHired == 1 || Followers.DogmeatFired == 1 ); set Followers.PlayerHasFollower to 0; set Followers.DogmeatHired to 0; ShowMessage FollowerMessageDeadDogmeat; endif ;END He still dies, but he comes back quicker than the Terminator. I took him to Old Olney and told him to find some ammo for me. Two Deathclaws hammered him to death a dozen times. So I took the "Begin OnDeath" section at the end of the script out of play with semicolons so I didn't have to see the "Dogmeat has Died" message repeatedly. If you remove that portion, then it makes it unecessary to have the new portion of the script rehire him every time he dies. Ah, a boy and his dog.... Can someone at least take a look at my file or something. This seems like it would be so simple to do yet I'm having problems with something along the way. I'm worried it's probably something simple I've just looked over. Link to comment Share on other sites More sharing options...
TGBlank Posted April 24, 2009 Share Posted April 24, 2009 Can you just... prid dogmeat's id and setessential 1 him?. Link to comment Share on other sites More sharing options...
Deleted1084753User Posted April 24, 2009 Share Posted April 24, 2009 lol that would certainly be the easiest way. Or just download one of the dogmeat essential mods that does it for you (even if it's just to look and see how they did it). Also, @ badpenney: as I learned from cipcsis, you don't need the = 1 in the GetDead statement :) If dogmeat is dead, it's going to return a 1, no need to specifically check it like that. Link to comment Share on other sites More sharing options...
Xokks Posted April 24, 2009 Author Share Posted April 24, 2009 Can you just... prid dogmeat's id and setessential 1 him?. I unfortunately don't know what that is since I'm completely new to scripting. The one script that has Dogmeat resurrect instantly isn't exactly what I had planned for. How do you go about making him fall unconscious for a bit. I wanted him to not be able to die, but didn't just make him invincible since it would ruin combat involving Dogmeat. So I figured if he could get knocked unconscious in the middle of battle it would be a little more balanced. Edit: I just wanted to learn a bit about scripting like this and thought that this Dogmeat idea might be something fairly easy to learn and do. If anyone has another opinion of what direction I should start out in feel free to advise me. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.