maxarturo Posted September 25, 2020 Share Posted September 25, 2020 (edited) Hi everyone. I'm about to finish the last add-on equipment for my mod, i'm working on a unique constructible "Non Follower > Follower", the "Cyborgaumaton Dwarven X-Beyond", and i'm having some troubles to implement some things from my original idea to it's combat script and combat testings + behavior. I'm hoping that some of the community's experienced modders and scripters can give me some additional inspiration or ideas that i'm lacking due to the heavy workload + the insane amount of work i've done until now to this add-ons, i'm kind of stuck especially with 2 issues... FIRST ISSUE: I'm trying to find a way for the 'Debug.Notification' to have some more duration on screen, 1 workaround is to make and add to it's script 'Messages', but it's something i want to avoid, unnecessary lost of precious time. The reason is: I need to see / check in real time that all the actor's functions + abilities (and the things that are not visible in-game) are firing when they are supposed to, while at the same time keeping visual track of the actor's behavior 'on combat' and 'not in combat'. * Some of it visual functions are explained further down. SECOND ISSUE: The "Cyborgaumaton X-Beyond" has in the part of the mesh that corresponds to its 'Flesh' part, blue pulsing glowing circuits that simulate the flow of energy. The droid's circuits when entering combat will change from 'Blue Pulsing' to a steady bright 'Yellow'. The initial idea was to: According to the number of enemies that are on a certain radius from it (5120), it will go into 'Overdrive Mode' or 'Overclock Mode' (i don't know which one is the correct terminology, but it's just a detail that needs some dictionary research). If the number of enemies exceeds a certain predefined amount, it'll then change its appearance to 'Yellow Circuits', plus unlocking some of its destructive abilities. All the papyrus "FindActor' functions have the drawback that they can find the same actor more than one time, and putting the function on a 'while' loop again is not reliable, plus it can add delay to its initial attack if there is a large number of enemies until the 'while' loop finishes. * I have a back up idea that i'm developing right now, but it's not that awesome... THIRD ISSUE: After the droid has left combat and has returned to its original state (blue circuits), then it'll need to replenish its lost energy. The initial idea was to: The first x number of hostile that died in combat it'll absorb the enemies soul to fuel its energy core, but the issue here is how to detect + avoid 'Soul Trapping' the same actor that the player can also be 'Soul Trapping'. * I have 2 back up ideas, but again they are not that awesome..., and i also have the option to not add at all this function to the droid. I'm open to any ideas that you may throw at me... I have some time ahead, since i still need to construct the cells required + puzzle + quest, but all of this won't take more than a week since i have it all ready and fully functional in my head. Thank you very much for reading all this, and have a nice weekend. Edited September 26, 2020 by maxarturo Link to comment Share on other sites More sharing options...
IsharaMeradin Posted September 26, 2020 Share Posted September 26, 2020 You cannot change the time that a notification message displays on screen. That said, it has been my experience that if the same notification message were to be displayed back to back the game would not actually put up a new line of text but appear to extend the display time of the first line of text. Perhaps there is something there that you can fudge with but keep in mind that notification statements do increase processing time and can change the timing of following scripted events. As far as everything else, no idea. Sorry. Link to comment Share on other sites More sharing options...
dylbill Posted September 26, 2020 Share Posted September 26, 2020 For your second issue, there is a function that Papyrus Extender can help with: https://www.nexusmods.com/skyrim/mods/95017 ObjectReference[] Function FindAllReferencesOfFormType(ObjectReference akRef, Int formType, float radius) global native The form type you want is 43 kNPC https://www.creationkit.com/index.php?title=GetType_-_FormThat function will find all NPC's in a radius around an object reference and put them in an array So, for example Event SomeEvent() ObjectReference[] NPCs = PO3_SKSEfunctions.FindAllReferencesOfFormType((self as ObjectReference), 43, 5000) Int M = NPCs.Length Int Enemies = 0 While M > 0 M -= 1 If (NPCs[M] as actor).GetRelationshipRank(Self) < 0 Enemies += 1 Endif EndWhile If Enemies > SomeNumber ;Do stuff Endif EndEventI haven't tested it, but I think that should work. I assumed you'd be attaching the script to your driod, so I used self in the script. Link to comment Share on other sites More sharing options...
maxarturo Posted September 26, 2020 Author Share Posted September 26, 2020 Thanks IsharaMeradin and dylbill. I will implement / experiment with your suggestions this weekend and try to combine them with the whole initial idea, if it's possible for all of them to work together... Thank again. Link to comment Share on other sites More sharing options...
NexusComa2 Posted September 26, 2020 Share Posted September 26, 2020 IsharaMeradin said it ... you can't say the same thing twice in a row or it will be skipped. Link to comment Share on other sites More sharing options...
Recommended Posts