-
Posts
284 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Posts posted by JustChill
-
-
-
That would be actually pretty easy to do.
Scan the current cell for all objects and filter through them.
If it is something that can be picked up (ammunition, weapon, flora) simply activate it.
Only downside would be that you hear tons of "pickup"-sounds at once. XD
Also the solution I am thinking about, simply won't have any animation of objects flying to the player.
They simply land in the player's inventory.
-
Hey there they should function perfectly fine.
I made a tiny box on top of a house to add a key, while the regular box is pretty big this one was considered as cheat or easter egg to get into the house early.
So I made it very, very, very, tiny and well hidden. ^^
When it comes to the scale of other objects it depends... I am not at the GECK right now, but the base form of creatures has a built-in scale value.
You can change that value directly in the base form, but this will affect all references of that creature.
If container have such a scale function in the base form either, it will also affect all references of that container.
HOWEVER, as you say you use it in the render window, then this is actually the scale of the placed reference. It should NOT affect the base form.
So all other references of that container should still have regular size.
-
Actually, that is my point, to make all fiends non-hostile. My follower is a Great Khan, and his companion perk is to calm the fiends, since Khans sell to the Fiends. So his script is working properly when he's hired, the fiends are behaving as intended. The trouble I'm having is when he is fired, I'm not sure how to properly remove that perk so things go back to normal.
Ah, thanks for the clarification. That's a pretty intense follower then. ^^
In that case
SetEnemy FiendsFactionNV PlayerFaction 1 1
should be what you need.
This will set the fiends to "neutral", but as they should have other traits (aggressive I guess), the neutral should be overwritten.
If you want to be on the sure side however, you can fairly use
SetEnemy FiendsFactionNV PlayerFaction
as that will turn them hostile again for good.
SetAlly befriends therefore
SetAlly FiendsFactionNV PlayerFaction 0 0
would not work.
As they would still stay friendly, towards the player. Just not a "friend" in the case that they come to the players aid in combat.
That's how the animal friend perk works by the way!
Setally AnimalFriendFaction PlayerFaction
--> This is rank 1 of the friendship perk.
SetAlly AnimalFriendFaction PlayerFaction 1 1
--> This is rank 2 of the friendship perk.
-
Alright... I've updated the scanning version of the mod (for the english version) at least.
Additionally, I've recorded my issues with the "advanced" version and sent the video to jazzisparis in hope he can somewhat find out what's wrong with SetBaseFactionRank. :(
-
Hey there!
Your command affects the whole "FiendsFactionNV". So not only your hire will be friendly, but also all other fiends in that faction.
It would be better to create an own faction for your mod and simply add your hire into that faction. Set that faction to be a friend of the player.
"SetAlly" is savegame baked so it's enough to use that command once, or even set up your own faction in a good relation to the player.
When you unhire the person, simply remove it from that faction again and it should fall back into old behaviour.
Hope this helped a bit. :)
Cheers
-
Alright... So interestingly, they don't load up hostile upon start when all the creatures are added into the list in
Menu Mode 4
and then added into the respective animal friend faction.
However, as that's the main menu it's not possible to gather variables (from a savegame) that change the faction of just some specific creatures.
So I assume that the change of faction is performed at a point upon loading a recently started game, where the script fails to do so.
Funnily reloading the very same save once more fixes it.
So one attempt would be to make the mod static (creatures are added to faction upon main menu) or to find a method to apply faction changes while loading a save, as otherwise it seems they do not get applied. :(
Even more weird the Nightstalkers load up as allies but then turn hostile. But having them being corrected upon reloading is even weirder. oO
-
So I went back into this whole thing with factions...
This time my approach is to have form lists which contain the respective base forms and use SetBaseFactionRank as before.
HOWEVER, it turns out that starting a game and then loading a savegame where the player is in fron of dynamic factions seems not to be a good idea.
As upon loading these turn out hostile, even if the player has the correct perk.
scn DHMoperationalSetFactionsScript short sAnimalListCountOP short sAnimalListIndexOP ref rAnimalListFormOP short sEvaluateAllyEnemy Begin Function{sEvaluateAllyEnemy} if sEvaluateAllyEnemy if Player.HasPerk DHMAnimalFriend SetEnemy PlayerFaction DHMMammalFriendFaction 1 1 endif if Player.HasPerk DHMReptileFriend SetEnemy PlayerFaction DHMReptileFriendFaction 1 1 endif if Player.HasPerk DHMInsectFriend SetEnemy PlayerFaction DHMInsectFriendFaction 1 1 endif if Player.HasPerk DHMAbomiFriend SetEnemy PlayerFaction DHMAbomiFriendFaction 1 1 endif endif if DHMMCMQuest.DHMAlsoBosses Let sAnimalListCountOP := ListGetCount DHMMammalBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMMammalBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMMammalFriendFaction 0 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop Let sAnimalListIndexOP := 0 Let sAnimalListCountOP := ListGetCount DHMGeckoBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMGeckoBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMReptileFriendFaction 0 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop Let sAnimalListIndexOP := 0 Let sAnimalListCountOP := ListGetCount DHMArthopodBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMArthopodBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMInsectFriendFaction 0 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop Let sAnimalListIndexOP := 0 Let sAnimalListCountOP := ListGetCount DHMAbominationBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMAbominationBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction 0 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop else Let sAnimalListCountOP := ListGetCount DHMMammalBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMMammalBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMMammalFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop Let sAnimalListIndexOP := 0 Let sAnimalListCountOP := ListGetCount DHMGeckoBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMGeckoBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMReptileFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop Let sAnimalListIndexOP := 0 Let sAnimalListCountOP := ListGetCount DHMArthopodBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMArthopodBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMInsectFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop Let sAnimalListIndexOP := 0 Let sAnimalListCountOP := ListGetCount DHMAbominationBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMAbominationBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif Let sAnimalListIndexOP := 0 if DHMMCMQuest.DHMAlsoCyber Let sAnimalListCountOP := ListGetCount DHMCyberdogListDlcOWB if sAnimalListCountOP While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMCyberdogListDlcOWB sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMMammalFriendFaction 0 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif Let sAnimalListIndexOP := 0 if DHMMCMQuest.DHMAlsoBosses Let sAnimalListCountOP := ListGetCount DHMCyberdogBossListDlcOWB if sAnimalListCountOP While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMCyberdogBossListDlcOWB sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMMammalFriendFaction 0 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif else Let sAnimalListCountOP := ListGetCount DHMCyberdogBossListDlcOWB if sAnimalListCountOP While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMCyberdogBossListDlcOWB sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMMammalFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif endif else Let sAnimalListCountOP := ListGetCount DHMCyberdogListDlcOWB if sAnimalListCountOP While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMCyberdogListDlcOWB sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMMammalFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif Let sAnimalListIndexOP := 0 Let sAnimalListCountOP := ListGetCount DHMCyberdogBossListDlcOWB if sAnimalListCountOP While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMCyberdogBossListDlcOWB sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMMammalFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif endif Let sAnimalListIndexOP := 0 if DHMMCMQuest.DHMAddDClawsToReptile Let sAnimalListCountOP := ListGetCount DHMDeathClawList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMDeathClawList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMReptileFriendFaction 0 rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop Let sAnimalListIndexOP := 0 if DHMMCMQuest.DHMAlsoBosses Let sAnimalListCountOP := ListGetCount DHMDeathClawBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMDeathClawBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMReptileFriendFaction 0 rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop else Let sAnimalListCountOP := ListGetCount DHMDeathClawBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMDeathClawBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMReptileFriendFaction -1 rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif else Let sAnimalListCountOP := ListGetCount DHMDeathClawList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMDeathClawList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction 0 rAnimalListFormOP SetBaseFactionRank DHMReptileFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop Let sAnimalListIndexOP := 0 if DHMMCMQuest.DHMAlsoBosses Let sAnimalListCountOP := ListGetCount DHMDeathClawBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMDeathClawBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction 0 rAnimalListFormOP SetBaseFactionRank DHMReptileFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop else Let sAnimalListCountOP := ListGetCount DHMDeathClawBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMDeathClawBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP SetBaseFactionRank DHMReptileFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif endif Let sAnimalListIndexOP := 0 if DHMMCMQuest.DHMAddGhoulToAbom Let sAnimalListCountOP := ListGetCount DHMGhoulList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMGhoulList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction 0 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop Let sAnimalListIndexOP := 0 if DHMMCMQuest.DHMAlsoBosses Let sAnimalListCountOP := ListGetCount DHMGhoulBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMGhoulBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction 0 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop else Let sAnimalListCountOP := ListGetCount DHMGhoulBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMGhoulBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif else Let sAnimalListCountOP := ListGetCount DHMGhoulList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMGhoulList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop Let sAnimalListIndexOP := 0 Let sAnimalListCountOP := ListGetCount DHMGhoulBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMGhoulBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif Let sAnimalListIndexOP := 0 if DHMMCMQuest.DHMAddSuperMuToAbom Let sAnimalListCountOP := ListGetCount DHMSupermutantList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMSupermutantList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction 0 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop Let sAnimalListIndexOP := 0 if DHMMCMQuest.DHMAlsoBosses Let sAnimalListCountOP := ListGetCount DHMSupermutantBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMSupermutantBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction 0 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop else Let sAnimalListCountOP := ListGetCount DHMSupermutantBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMSupermutantBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif else Let sAnimalListCountOP := ListGetCount DHMSupermutantList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMSupermutantList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop Let sAnimalListIndexOP := 0 Let sAnimalListCountOP := ListGetCount DHMSupermutantBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMSupermutantBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif Let sAnimalListIndexOP := 0 if DHMMCMQuest.DHMAddNightkinToAbom Let sAnimalListCountOP := ListGetCount DHMNightkinList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMNightkinList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction 0 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop Let sAnimalListIndexOP := 0 if DHMMCMQuest.DHMAlsoBosses Let sAnimalListCountOP := ListGetCount DHMNightkinBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMNightkinBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction 0 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop else Let sAnimalListCountOP := ListGetCount DHMNightkinBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMNightkinBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif else Let sAnimalListCountOP := ListGetCount DHMNightkinList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMNightkinList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop Let sAnimalListIndexOP := 0 Let sAnimalListCountOP := ListGetCount DHMNightkinBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMNightkinBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif Let sAnimalListIndexOP := 0 if DHMMCMQuest.DHMAddGhostPeopToAbomDLC Let sAnimalListCountOP := ListGetCount DHMGhostPeopleListDlcDM if sAnimalListCountOP While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMGhostPeopleListDlcDM sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction 0 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop Let sAnimalListIndexOP := 0 endif Let sAnimalListIndexOP := 0 if DHMMCMQuest.DHMAlsoBosses Let sAnimalListCountOP := ListGetCount DHMGhostPeopleBossListDlcDM if sAnimalListCountOP While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMGhostPeopleBossListDlcDM sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction 0 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif else Let sAnimalListCountOP := ListGetCount DHMGhostPeopleBossListDlcDM if sAnimalListCountOP While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMGhostPeopleBossListDlcDM sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif endif else Let sAnimalListCountOP := ListGetCount DHMGhostPeopleListDlcDM if sAnimalListCountOP While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMGhostPeopleListDlcDM sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop Let sAnimalListIndexOP := 0 Let sAnimalListCountOP := ListGetCount DHMGhostPeopleBossListDlcDM if sAnimalListCountOP While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMGhostPeopleBossListDlcDM sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif endif endif Let sAnimalListIndexOP := 0 if DHMMCMQuest.DHMAddNStalkerToMammal Let sAnimalListCountOP := ListGetCount DHMNightStalkerList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMNightStalkerList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMMammalFriendFaction 0 rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop Let sAnimalListIndexOP := 0 if DHMMCMQuest.DHMAlsoBosses Let sAnimalListCountOP := ListGetCount DHMNightStalkerBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMNightStalkerBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMMammalFriendFaction 0 rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop else Let sAnimalListCountOP := ListGetCount DHMNightStalkerBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMNightStalkerBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMMammalFriendFaction -1 rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif else Let sAnimalListCountOP := ListGetCount DHMNightStalkerList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMNightStalkerList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction 0 rAnimalListFormOP SetBaseFactionRank DHMMammalFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop Let sAnimalListIndexOP := 0 if DHMMCMQuest.DHMAlsoBosses Let sAnimalListCountOP := ListGetCount DHMNightStalkerBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMNightStalkerBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction 0 rAnimalListFormOP SetBaseFactionRank DHMMammalFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop else Let sAnimalListCountOP := ListGetCount DHMNightStalkerBossList While sAnimalListIndexOP < sAnimalListCountOP Let rAnimalListFormOP := ListGetNthForm DHMNightStalkerBossList sAnimalListIndexOP if isFormValid rAnimalListFormOP SetBaseFactionRank DHMAbomiFriendFaction -1 rAnimalListFormOP SetBaseFactionRank DHMMammalFriendFaction -1 rAnimalListFormOP endif Let sAnimalListIndexOP += 1 Loop endif endif Let sAnimalListIndexOP := 0 if sEvaluateAllyEnemy if Player.GetPerkRank DHMAnimalFriend == 1 SetAlly PlayerFaction DHMMammalFriendFaction elseif Player.GetPerkRank DHMAnimalFriend == 2 SetAlly PlayerFaction DHMMammalFriendFaction 1 1 endif if Player.GetPerkRank DHMReptileFriend == 1 SetAlly PlayerFaction DHMReptileFriendFaction elseif Player.GetPerkRank DHMReptileFriend == 2 SetAlly PlayerFaction DHMReptileFriendFaction 1 1 endif if Player.GetPerkRank DHMInsectFriend == 1 SetAlly PlayerFaction DHMInsectFriendFaction elseif Player.GetPerkRank DHMInsectFriend == 2 SetAlly PlayerFaction DHMInsectFriendFaction 1 1 endif if Player.GetPerkRank DHMAbomiFriend == 1 SetAlly PlayerFaction DHMAbomiFriendFaction elseif Player.GetPerkRank DHMAbomiFriend == 2 SetAlly PlayerFaction DHMAbomiFriendFaction 1 1 endif endif End
This function evaluates the faction. It's working normally, except when loading a game after booting the game, as said.
Funnily, when loading a game again the factions get correct.
But this doesn't sound like a proper solution... "Load the game once more to fix faction issues". oO
The funny thing is, the boss (Den Mother --> Nightstalker) in that cave is always correct, but the spawned ones seem to have issues with getting grouped into the correct faction initially.
While they don't when the save is loaded again.
Is it possible that the script is too heavy?
The function only get triggered upon loading, or when changing settings in MCM.
And these spawned Nightstalkers always seem to have issues realizing that they should not be hostile. Somehow they do not want to get into the faction (or out of it) easily. :/
-
Fair enough. I've sent shad44 a PM and also a user called sjors boomschors, even though I am not sure, if that's the person who created the fish resources.
As there is only one mod for Skyrim available from said user.
But then again, the original fish resources for Oblivion got removed.
Crossing fingers... :)
-
I rather would work with the Optimizer, but anyways...
-
What has the Creation Kit to do with it? This is the Oblivion-hub.
I am using the Construction Set Extender and even with that one, there is no baked in option to create BSA-archives.
For Oblivion, I mostly use BSAcmd or BSAopt.
Even though being a bit more intiuitive is just my subjective opinion.
-
Hey there,
I recently thought of continuing on Nehrim by making a fish mod, but the resources from Sjors Boomschors appear to be gone from Nexus. :sad:
and
SB Resource - Clear Stream Fish
don't exist anymore, yet there are other mods on Nexus that still use these resources.Would it be allowed to get them from there or can't these fish resources be used anymore?
This mod for example uses the resources.
Would it be enough if I write into the credits, that I got them from there and the originals come from Sjors Boomschors?
Kindest regards,
JC
-
Hey,
as of recently entering the final phase of my work on Nehrim, I also changed the script of the socket of the statue in Castle Darlan so it can be re-created.
Aside of that, I either changed the original appearance as I sometimes found a unconscious player copy laying around on the socket. oO
This appeared to work very well:
SCN BurgDarlanStatueScript ref playerstatue ref UNFplayerstatueOLD Short StatueOnce short Button ref rUNFpcEquTorch ref rUNFinvRef Begin OnActivate if ( StatueOnce == 2 ) && ( IsActionRef player == 1 ) && ( GetPCIsSex Male ) PlaySound "UIMenuPrevNext" MessageBoxEx "Statue of the Hero of Darlan: He freed Castle Darlan and the village of Mortram in the year %.0f of the Third Era after Treomar.%r%r%rThe stonemason is motivated and would like to re-create your statue at any time.%rDo you want to get your statue re-created?|Yes|No" VarStatueYear Let StatueOnce := 3 elseif ( StatueOnce == 2 ) && ( IsActionRef player == 1 ) && ( GetPCIsSex Female ) PlaySound "UIMenuPrevNext" MessageBoxEx "Statue of the Heroine of Darlan: She freed Castle Darlan and the village of Mortram in the year %.0f of the Third Era after Treomar.%r%r%rThe stonemason is motivated and would like to re-create your statue at any time.%rDo you want to get your statue re-created?|Yes|No", VarStatueYear Let StatueOnce := 3 else PlaySound "UIMenuCancel" Return endif End Begin GameMode if StatueOnce == 3 Let Button := GetButtonPressed if Button == 0 Let StatueOnce := 0 Message "Should be called stone master not stonemason!" elseif Button == 1 Let StatueOnce := 2 endif elseif StatueOnce == 2 && playerStatue.IsIdlePlaying == 0 ;=> Failsafes for stone, no idle and wrong placement. if playerstatue.GetPos Z < 10900 playerStatue.moveto DarlanStatueMarkerRef if playerstatue.GetCurrentPackage == PlayerStatuePosePackage else playerStatue.AddScriptPackage PlayerStatuePosePackage endif endif if playerStatue.HasEffectShader effectStone else playerStatue.pms effectstone endif playerstatue.PickIdle StatueIdle elseif StatueOnce == 1 && playerstatue.HasEffectShader effectStone == 0 playerstatue.pms effectStone ;=> To ensure the effectShader is applied ASAP after creating the copy. elseif StatueOnce == 1 && playerStatue.IsWeaponOut playerStatue.setunconscious 1 playerStatue.AddScriptPackage PlayerStatuePosePackage Let StatueOnce := 2 elseif (StatueOnce == 0 && GetStage MQ18 > 49 && Player.IsRidingHorse == 0 && Player.GetCurrentAIPackage != 22 && Player.GetCurrentAIPackage != 23) Let rUNFpcEquTorch := Player.GetEquippedObject 14 ;=> We MUST NOT create a statue, when the player is interacting with a horse!!!!!!! if rUNFpcEquTorch Player.UnequipItemSilent rUNFpcEquTorch ;=> So no torches will be transfered to the actor copy. endif ;=> Prevents the weapon & torch in one hand bug. ForEach rUNFinvRef <- PlayerRef if rUNFinvRef.IsEquipped ;=> We move ALL unequipped items into safety. else ;=> CreateFullActorCopy also copies the whole inventory and creates new rUNFinvRef.RemoveMeIR UnfPCItemSaferREF ;=> BaseForms out of the item (safed into the savegame). endif Loop if playerstatue ;=> Previously created is now disabled and later removed. playerStatue.Disable Let UNFplayerstatueOLD := playerstatue endif Let playerStatue := player.CreateFullActorCopy playerStatue.moveto DarlanStatueMarkerRef playerStatue.setalert 1 playerStatue.setdestroyed 1 ; so you can't activate player; playerStatue.setscale 1.8 playerStatue.setav speed 0 ; so you can't move it around playerStatue.setghost 1 UnfPCItemSaferREF.RemoveAllItems Player ;=> I WANT MY ITEMS BACK! Let StatueOnce := 1 if rUNFpcEquTorch Player.EquipItemSilent rUNFpcEquTorch endif if UNFplayerstatueOLD UNFplayerstatueOLD.DeleteFullActorCopy ;=> Acts as return, therefore will be done at the end. endif ;=> Old statue is removed from the savegame. endif End
I just had to add the new container for saving the items of the player, but removing them before creating a full actor copy, won't make so many useless copies fo these items.
-
I still use Audacity for cutting audio, etc as i like how simple it is and it's for free.
But I never hear audio ingame, when saving it with Audacity. So I have to convert it again afterwards with VLC Media Player.
As I said, maybe my "LAME.dll" has issues or the MP3Tag format is weird.
So if someone has similar issues, using VLC Media Player to convert the MP3 again helps (at least in my case). ;)
-
Voice Lines need a specific MP3 format.
I use Audacity too, but maybe my "LAME.dll" for Audacity's MP3 conversion doesn't work properly.
I always use the right format for voice lines "64 kbit/s, 44 Hz, Mono" but it never works when I save them with Audacity.
So I finally use VLC Player to convert them into working MP3s with the very same format.
Could be the MP3 tags, as Audacity always ask me which Tag format I would prefer, while VLC simply converts the file.
-
Hey, thanks for the details.
The only thing where I know it's used in my mods is where I simply took over the script from Nehrim Expanded. ^^
ForEach NMOactiveSpellEffectsPlayer <- (Player.GetActiveEffectCodes) let NMOeffectIndex := NMOactiveSpellEffectsPlayer["value"] if (MagicEffectUsesCreatureC NMOeffectIndex) let NMOeffectKey := NMOactiveSpellEffectsPlayer["key"] let NMOsingleBaseNpcREF := Player.GetNthActiveEffectSummonRef NMOeffectKey if NMOSummonedRef1 == 0 && NMOsingleBaseNpcREF if NMOSummonedRef2 == 0 && NMOSummonedRef3 Let NMOSummonedRef1 := NMOsingleBaseNpcREF elseif NMOSummonedRef2 != NMOsingleBaseNpcREF && NMOSummonedRef3 != NMOsingleBaseNpcREF Let NMOSummonedRef1 := NMOsingleBaseNpcREF endif endif if NMOSummonedRef2 == 0 && NMOsingleBaseNpcREF if NMOSummonedRef1 == 0 && NMOSummonedRef3 == 0 Let NMOSummonedRef2 := NMOsingleBaseNpcREF elseif NMOSummonedRef1 != NMOsingleBaseNpcREF && NMOSummonedRef3 != NMOsingleBaseNpcREF Let NMOSummonedRef2 := NMOsingleBaseNpcREF endif endif if NMOSummonedRef3 == 0 && NMOsingleBaseNpcREF if NMOSummonedRef1 == 0 && NMOSummonedRef2 == 0 Let NMOSummonedRef3 := NMOsingleBaseNpcREF elseif NMOSummonedRef1 != NMOsingleBaseNpcREF && NMOSummonedRef2 != NMOsingleBaseNpcREF Let NMOSummonedRef3 := NMOsingleBaseNpcREF endif endif Set NMOsingleBaseNpcREF to 0 endif Loop
This will generate 3 references for the summoned creatures of the player, but I barely knew why or how it works. It just works. ^^
So I guess "<-" means that like in your example every item from the container gets translated into the item reference.
Pretty interesting. :)
-
Thanks, I guess then I can revert it to the old behavior. :smile:
Good to know it's used in Oblivion too. Never checked that code to be honest. ^^
-
I felt the same, when I wanted to mod Skyrim / Enderal.
But after I was done with the mods for it, I left it for good. I really hate Papyrus and many other changes like aliases.
Rather prefer the oldschool stuff. ^^
-
"PekChestSortingQUST", but this looks like a questID with that "QUST"-tag. ^^
Is "State" really a local variable from an object script which you are changing here or is it a quest variable?
I know quest variables are like "hidden" global variables as they can get accessed at any point with the proper syntax.
But there is nowhere a documentation to be found about local variables from object scripts being accessed via "ReferenceID.VarName", so I was wondering. ;)
-
Use TES5Edit.
After merging, click onto a loaded plugin a context menu with many options appears.
One of these options is "Clean Masters (Remove all unused masters)".
It will then try and remove all masters that are not required. That said it only works, if you really removed ALL the references pointing onto other mods.
Previously on older xEdit versions, you were allowed to simply remove any master by hand.
Yet that's flawed as it's easy to forget some references pointing to another mod.
Therefore this new "Clean Masters"-function is far more reliable.
-
You are welcome. :smile:
Dialogue Conditions are still a bit weird to me.
When I enhanced the dialogues of a quest in Nehrim to have dynamic response possibilities
Dialogue Result Script: If GetStage <Quest> == 10 AddTopic QuestTopic1 AddTopic QuestTopic2 AddTopic QuestTopic3 elseif GetStage <Quest> == 11 AddTopic QuestTopic2 elseif GetStage <Quest> == 12 AddTopic QuestTopic2 AddTopic QuestTopic3 endif
This worked for dynamic responses the player can choose from, but the topic then also appeared for another NPC, so I had to add more conditions to it until it was finally just available for the one NPC I wanted to have it.
-
I recently found something interesting in the "Nehrim.esm" which is the master for the total conversion Nehrim - At Fate's Edge.
And I am not sure if this is actually a thing or just some weird stuff.
Set DoorReferenceID.HebelBetaetigt to 1
So... "DoorReferenceID" is the reference name of a door placed in the world space and "HebelBetaetigt" is a local variable in that door script.
It's accessed here from another object script (the script of the lever / Hebel actually).
I know that quest variables can be accessed by this syntax
Questname.VarName
but I never heard about this Object Script thing.
Yet it appears it seemed to work - functionality wise - in the game.
But I wonder if this were able to cause instabilities. I've changed "HebelBetaetigt" to a quest variable now and also changed all instances where "HebelBetaetigt" is used to point to the actual quest variable and not to the one in the Object Script of the door.
Still not sure if this was actually necessary?!
Does anyone know if this is actually a save thing to do, accessing variables of Object Scripts in that way?
Cheers
-
I wish you best success then. :)
-
As it is not that common unfortunately.
I agree with Arthmoor there and I would have removed the dependency of SkyBSA on my mod, if I wouldn't be that mad about using BSAs. ^^
Alternatives to the 'MoveTo' Command
in Discussion
Posted
Also be aware that PositionCell and PositionWorld use radians for the rotation value:
So "zRot" does not work with a simple "GetAngle" function, if you want to move something dynamically.
This script merely replaces the rTarget reference with the rToMove reference.