wilwhitt56 Posted September 16, 2022 Share Posted September 16, 2022 (edited) I'm in need of some assistance with some, what I think will be, advanced scripting for the final boss for my mod. Please keep in mind, I am still new to scripting. The "most advanced" scripting I have done is making a gate open on someone's death. What I'm trying to figure out: 1. As you see in the image, I'm wanting to make the areas with X's dangerzones. I'm wanting to have the crystals in the machine slowly siphon the player's HP, Magic, and Stamina., forcing the player to keep and eye on these, or fight in the safe zones marked with checks. 1.5. Needing to figure out how to have her attack me/ become aggressive after dialogue is done. 2. When the Boss dies, I'm wanting the arena to have a shaking effect, while having rocks falling from the ceiling in set orders, like two seconds this group falls, eight seconds this next one falls. Also a portal to open back the way the player came from. Also, Possibly a timer that, If the player is still in the chamber, they will die cause they stayed too long and "got crushed". PLEASE keep in mind, I am NOT asking anyone to make these for me. I am merely asking for a helping hand, some pointers, possibly a tutorial video here and there. Please and thank you. Edited September 16, 2022 by wilwhitt56 Link to comment Share on other sites More sharing options...
smusini Posted September 16, 2022 Share Posted September 16, 2022 1 - I'd create some damaging zones, and then enable or disable then when need. Not sure how i'd make them, but maybe you can check how the vanilla forging station works, since jumpimg on it damages you... or you could just have trigger zones that activate damaging spell effects on you instead 1.5 - try adding her a faction that is hostile to the player 2 - way too hard for me, i'm a noob Link to comment Share on other sites More sharing options...
IsharaMeradin Posted September 16, 2022 Share Posted September 16, 2022 In Brittleshin Pass there is a "spellcaster trap" which consists of a soul gem on a pedestal. If the player gets in range, a designated spell is cast at them. If the player knocks the soul gem out of position the trap is broken and the area safe to walk in. You could do something similar to that by placing an object that the player cannot knock down and have the spell cast from that instead. As far as getting the place to shake and rocks fall down, take a look at how Bethesda handled Helgen Keep. The first rock fall encountered includes shaking the screen. I do not think you can have the room shaking while the player is moving as the camera most likely needs to be overridden to create the shaking effect. You can also consider redoing the floor into a cross pattern and filling the corners with lava. That would be a sure fire way to get one to avoid certain areas. As far as the portal, place an xMarker where you want the portal and xMarkerHeading where you want the player to appear. Place a trigger volume box in the portal area that has the xMarker as an enable state parent. The xMarkerHeading can stay enabled but the xMarker and trigger volume box should be disabled. Enable the xMarker when the boss dies and you start dropping the ceiling. A script on the xMarker would spawn the summon portal effect (or cast a spell that spawns it -- whichever works) while a script on the trigger volume box will transport the player (and followers if you let them into the arena) to the xMarkerHeading. I used something similar to the following script when I was tinkering with my own remotely accessible home that I abandoned. Only included the portion relevant to what you want to do. Scriptname abimTriggerScript extends ObjectReference ObjectReference Property abimInternalLocMarker Auto ObjectReference Property abimExternalLocMarker Auto GlobalVariable Property abimTeleportStatus Auto ReferenceAlias Property Follower Auto Event OnTriggerEnter(ObjectReference akActionRef) If akActionRef == Game.GetPlayer() If abimTeleportStatus.GetValueInt() == 0 Utility.Wait(1.0) akActionRef.MoveTo(abimExternalLocMarker) Follower.GetReference().MoveTo(abimExternalLocMarker) EndIf EndIf EndEvent Link to comment Share on other sites More sharing options...
wilwhitt56 Posted September 17, 2022 Author Share Posted September 17, 2022 In Brittleshin Pass there is a "spellcaster trap" which consists of a soul gem on a pedestal. If the player gets in range, a designated spell is cast at them. If the player knocks the soul gem out of position the trap is broken and the area safe to walk in. You could do something similar to that by placing an object that the player cannot knock down and have the spell cast from that instead. As far as getting the place to shake and rocks fall down, take a look at how Bethesda handled Helgen Keep. The first rock fall encountered includes shaking the screen. I do not think you can have the room shaking while the player is moving as the camera most likely needs to be overridden to create the shaking effect. You can also consider redoing the floor into a cross pattern and filling the corners with lava. That would be a sure fire way to get one to avoid certain areas. As far as the portal, place an xMarker where you want the portal and xMarkerHeading where you want the player to appear. Place a trigger volume box in the portal area that has the xMarker as an enable state parent. The xMarkerHeading can stay enabled but the xMarker and trigger volume box should be disabled. Enable the xMarker when the boss dies and you start dropping the ceiling. A script on the xMarker would spawn the summon portal effect (or cast a spell that spawns it -- whichever works) while a script on the trigger volume box will transport the player (and followers if you let them into the arena) to the xMarkerHeading. I used something similar to the following script when I was tinkering with my own remotely accessible home that I abandoned. Only included the portion relevant to what you want to do. Scriptname abimTriggerScript extends ObjectReference ObjectReference Property abimInternalLocMarker Auto ObjectReference Property abimExternalLocMarker Auto GlobalVariable Property abimTeleportStatus Auto ReferenceAlias Property Follower Auto Event OnTriggerEnter(ObjectReference akActionRef) If akActionRef == Game.GetPlayer() If abimTeleportStatus.GetValueInt() == 0 Utility.Wait(1.0) akActionRef.MoveTo(abimExternalLocMarker) Follower.GetReference().MoveTo(abimExternalLocMarker) EndIf EndIf EndEvent So I figured out something. You can cover the soul gem with a collision box so that it can't be knocked off, AND it can still go off through it! Link to comment Share on other sites More sharing options...
IsharaMeradin Posted September 17, 2022 Share Posted September 17, 2022 I wondered as much but wasn't sure as I had never done it. Glad that worked. How is the rest of it going? Link to comment Share on other sites More sharing options...
wilwhitt56 Posted September 18, 2022 Author Share Posted September 18, 2022 (edited) I wondered as much but wasn't sure as I had never done it. Glad that worked. How is the rest of it going? NGL, That's ALL i've done today. Just trying to figure out how to get the dang thing to work. But hey, progress is progress. Edited September 18, 2022 by wilwhitt56 Link to comment Share on other sites More sharing options...
greyday01 Posted September 18, 2022 Share Posted September 18, 2022 You could put trigger boxes over the dangerous areas that when the player enters adds a perk that causes a drain effect and removes the perk when the player leaves the box. Try looking at the twilight sepulcher from the quest Darkness Returns. There is an area where you need to keep out of lighted parts of the room or get hit with a drain spell. That sounds like what you are trying to do. Link to comment Share on other sites More sharing options...
wilwhitt56 Posted September 20, 2022 Author Share Posted September 20, 2022 (edited) I wondered as much but wasn't sure as I had never done it. Glad that worked. How is the rest of it going? Right now I'm trying to figure out how make her turn hostile after I finish speaking to her. Is there a way to do that? I've tried looking up Estormo (the guy who tries to kill you after you get the Staff of Magnus) but I can't see anything that makes him turn hostile. Can't even get her to ForceGreet. Edited September 20, 2022 by wilwhitt56 Link to comment Share on other sites More sharing options...
IsharaMeradin Posted September 20, 2022 Share Posted September 20, 2022 Try using StartCombatExample: ;Inside a function or event Actor PlayerRef = Game.GetPlayer() myActor.StartCombat(PlayerRef) Link to comment Share on other sites More sharing options...
wilwhitt56 Posted September 21, 2022 Author Share Posted September 21, 2022 (edited) Try using StartCombatExample: ;Inside a function or event Actor PlayerRef = Game.GetPlayer() myActor.StartCombat(PlayerRef)I guess i'm not placing it in the right area. Scriptname CGAlismaBeginAttack extends TopicInfo Actor PlayerRef = Game.GetPlayer()CGNPCAlisma.StartCombat(PlayerRef) I tried to put it in the last quest dialogue in the scripts, then it says this: C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\CGAlismaBeginAttack.psc(3,18): no viable alternative at input 'Game'C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\CGAlismaBeginAttack.psc(3,22): required (...)+ loop did not match anything at input '.'C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\CGAlismaBeginAttack.psc(3,6): Unknown user flag GameNo output generated for CGAlismaBeginAttack, compilation failed. I'm not sure how exactly to put it in either an event or function. EDIT: GDI I think I broke Alisma, now she won't use dialogue at all. Edited September 21, 2022 by wilwhitt56 Link to comment Share on other sites More sharing options...
Recommended Posts