Jump to content

This perk/trait is possible?


YanL

Recommended Posts

Basically. It's a little hacky, but it's much easier than any alternative I can think of. I wouldn't consider it if you weren't already modifying the script. I'm just not fond of that sort of modding, but if you include in your mod description the records you've modified, people can do their load orders accordingly and it shouldn't be a huge problem. JIP LN may have something available to modify scripts at run-time, but I don't see it at the moment.

 

So, do that for every block to make sure nothing gets messy with unequipping. My example was just the first block. If you don't understand what I mean, let me know.

Link to comment
Share on other sites

Dont worry. Pretty sure that 90% of the people hate the disgase system in NV (and I am one of them lol) so it's not so bad. In fact, this is the objective of the perk. "Eliminate" this mechanic, so people can use a centurion armor while work for ncr or something like that.
Link to comment
Share on other sites

It works because you're already accepted by the Legion if you take that perk, but I actually do like the disguises. As a concept. I don't really like their simplified implementation, but I love the idea. It's true that I never use it really, as a result of the overall underdeveloped implementation.

Link to comment
Share on other sites

Oh God, I´m terrible at this

 

There is this error and I do not know how to fix it.

 

http://i64.tinypic.com/a178nd.png

 

Here is the script. I'm using Lady Killer just as a test because I have not created my perk yet.

 

 

 

scn CaesarsLegionFactionOutfitWarningScript
float fUpdatedNegNCR
float fUpdatedNegCL
float fUpdatedNegBoS
float fUpdatedNegGK
float fUpdatedNegPG
Begin OnEquip Player
IF PLAYER.HASPERK LadyKiller == 0
;Check to see if player was wearing faction armor.
if DisguiseFactionPulseQuest.bFactionArmorEquipped == 0
;Set variable to track wearing faction armor
set DisguiseFactionPulseQuest.bFactionArmorEquipped to 1
;Player was not wearing faction armor - so we store their reputation values, we don't need to clear it here, it'll get cleared below
;Store Reputations
set DisguiseFactionPulseQuest.fNCRNegReputation to GetReputation RepNVNCR 0
set DisguiseFactionPulseQuest.fLegionNegReputation to GetReputation RepNVCaesarsLegion 0
set DisguiseFactionPulseQuest.fBoSNegReputation to GetReputation RepNVBrotherhood 0
set DisguiseFactionPulseQuest.fKhanNegReputation to GetReputation RepNVGreatKhans 0
set DisguiseFactionPulseQuest.fPowderNegReputation to GetReputation RepNVPowderGanger 0
else
;Get Current Faction Values and add stored values
set DisguiseFactionPulseQuest.fNCRNegReputation to GetReputation RepNVNCR 0 + DisguiseFactionPulseQuest.fNCRNegReputation
set DisguiseFactionPulseQuest.fLegionNegReputation to GetReputation RepNVCaesarsLegion 0 + DisguiseFactionPulseQuest.fLegionNegReputation
set DisguiseFactionPulseQuest.fBoSNegReputation to GetReputation RepNVBrotherhood 0 + DisguiseFactionPulseQuest.fBoSNegReputation
set DisguiseFactionPulseQuest.fKhanNegReputation to GetReputation RepNVGreatKhans 0 + DisguiseFactionPulseQuest.fKhanNegReputation
set DisguiseFactionPulseQuest.fPowderNegReputation to GetReputation RepNVPowderGanger 0 + DisguiseFactionPulseQuest.fPowderNegReputation
endif
if VFactionArmorTutorial == 0
ShowMessage VFactionOutfitTutorial
set VFactionArmorTutorial to 1
endif
ShowMessage CaesarsLegionFactionOutfitWarning
StartQuest DisguiseFactionPulseQuest ;Kicks the pulse placing quest
setally ArmorVCaesarsLegionFaction PlayerFaction 1 1
player.addtofaction ArmorVCaesarsLegionFactionEnemy 0
;Clear Reputations
SetReputation RepNVNCR 0 0.0
SetReputation RepNVCaesarsLegion 0 0.0
SetReputation RepNVBrotherhood 0 0.0
SetReputation RepNVGreatKhans 0 0.0
SetReputation RepNVPowderGanger 0 0.0
end
Begin OnUnequip Player
if Player.GetEquipped FactionGearNVCaesar == 0
SetEnemy ArmorVCaesarsLegionFaction PlayerFaction 1 1
player.RemoveFromFaction ArmorVCaesarsLegionFactionEnemy
ShowMessage CaesarsLegionFactionOutfitWarningOff
;Restore Factions
;Get Current Values and add stored values
set fUpdatedNegNCR to GetReputation RepNVNCR 0 + DisguiseFactionPulseQuest.fNCRNegReputation
set fUpdatedNegCL to GetReputation RepNVCaesarsLegion 0 + DisguiseFactionPulseQuest.fLegionNegReputation
set fUpdatedNegBoS to GetReputation RepNVBrotherhood 0 + DisguiseFactionPulseQuest.fBoSNegReputation
set fUpdatedNegGK to GetReputation RepNVGreatKhans 0 + DisguiseFactionPulseQuest.fKhanNegReputation
set fUpdatedNegPG to GetReputation RepNVPowderGanger 0 + DisguiseFactionPulseQuest.fPowderNegReputation
endif
;If the player is not wearing ANY faction armor, clear this variable.
if (Player.GetEquipped FactionGearNVNCR == 0) && (Player.GetEquipped FactionGearNVCaesar == 0) && (Player.GetEquipped FactionGearNVBrotherhood == 0) && (Player.GetEquipped FactionGearNVGreatKhans == 0) && (Player.GetEquipped FactionGearNVPowder == 0) && (player.GetEquipped VMS18WhiteGloveMask == 0 || (Player.GetEquipped OutfitFormalWear == 0 && player.GetEquipped ArmorWhiteGloveSociety == 0))
;Clear Wearing Faction Armor Variable
set DisguiseFactionPulseQuest.bFactionArmorEquipped to 0
;Set Reputation Values to Updated
SetReputation RepNVNCR 0 fUpdatedNegNCR
SetReputation RepNVCaesarsLegion 0 fUpdatedNegCL
SetReputation RepNVBrotherhood 0 fUpdatedNegBoS
SetReputation RepNVGreatKhans 0 fUpdatedNegGK
SetReputation RepNVPowderGanger 0 fUpdatedNegPG
endif
end
;Restriction on Companions
Begin OnAdd CraigBooneREF
ShowMessage CompanionFactionArmorMsg
DropMe
End
Begin OnAdd RoseofSharonCassidyREF
ShowMessage CompanionFactionArmorMsg
DropMe
End
Begin OnAdd VeronicaREF
ShowMessage CompanionFactionArmorMsg
DropMe
End
Begin OnAdd RaulREF
ShowMessage CompanionFactionArmorMsg
DropMe
End
Begin OnAdd ArcadeREF
ShowMessage CompanionFactionArmorMsg
DropMe
End

 

If I erase my script and copy and paste yours just like you post in your message, but only change the name of the perk to Lady Killer and when I pick this perk, the message that I dressed in Caesar´s Legion armor stop to appear. But the NCR are still hostile to me.

Link to comment
Share on other sites

https://prnt.sc/ir92be

You need to put the if check in the OnUnequip block as well.

 

As far as I can tell, the way that faction armour works is that it adds you to a faction, as per this line:

player.addtofaction ArmorVCaesarsLegionFactionEnemy 0

Without this happening, and without the quest running (not getting the messages seems to indicate it's not running, though I don't think it does anything but govern the messages anyway), I'm not sure how they're handling faction armour, as this would seem to be enough.

 

You wouldn't by any chance actually have the Lady Killer perk, or be testing with a character that already has a good reputation with the Legion...would you? I would try with a new game after you've fixed the script.

 

Edit: So, that image is showing you where you missed the endif, which is why you're getting an error. The OnUnequip block is a separate thing that you need to do, which is simply adding your if player.HasPerk line as the first line after Begin OnUnequip and closing it with endif as the last line right before End

Edited by EPDGaffney
Link to comment
Share on other sites

ok, we almost there. At first, it worked. But I need to do a few more tests, especially on my load order, because I'm having a strange problem. Let me check that, I'll be right back.

Link to comment
Share on other sites

Let me know what happens.

 

Not a bug, forget.

 

It´s perfect now, thank you very much :cool: :cool: :cool:

 

I'll credit you for the script :)

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...