ReDragon2013 Posted December 12, 2020 Share Posted December 12, 2020 (edited) I thought you'll find a proper solution. Here is another approach with two scripts, one should be attached to the bunny baseobject and the other should run on the Refalias of your droid.There are using a formlist and globalVar to decide for next rabbit check AND a bool property "bRabbitNear" to be used in dialogue condition. You could tweak the 12 hours waiting (down to 6 hours), the 3.5 seconds single update wait time (up to 5.0) and/or the 1024.0 distance (maybe 2048.0 or higher) maxRabbit3DScript Scriptname maxRabbit3DScript extend ObjectReference ; https://forums.nexusmods.com/index.php?/topic/9373408-how-the-hell-can-i-do-this/ GlobalVariable PROPERTY gRabbitLastTime auto Conditional ; new created by CK, will be filled upon rabbit dialog has finished ; save the gametime here after dialogue is gone, use dialogue fragment maxAliasScript PROPERTY ps auto ; fill with script name where you want to store 3d loaded rabbits ; -- EVENTs -- 2/2 EVENT OnInit() ; do not use, because you should attach this script to the base object of rabbits ENDEVENT EVENT OnCellLoad() float f = gRabbitLastTime.GetValue() + 12.0 ; at least twelve hours to run the dialog again Debug.Trace(" OnCellLoad(" +f+ ") - Rabbit got 3D.. " +self) IF (f > Utility.GetCurrentGameTime()) ps.myF_Store(self) ENDIF ENDEVENT EVENT OnUnLoad() ; rabbit lost 3D ps.myF_Remove(self) ENDEVENT EVENT OnCellDetach() ; player has left cell of the rabbit ps.myF_Remove(self) ENDEVENT EVENT OnDetachFromCell() ; rabbit has left players parent cell ps.myF_Remove(self) ENDEVENT maxAliasScript Scriptname maxAliasScript extend ReferenceAlias ; https://forums.nexusmods.com/index.php?/topic/9373408-how-the-hell-can-i-do-this/ FormList PROPERTY RabbitList auto ; new created with CK (as empty list), will be filled inside this script Bool PROPERTY bRabbitNear auto Conditional ; [default=False], use this property inside your dialogue condition ; set to "False" after dialogue is gone, use dialogue fragment ; make sure to use a condition that the player is near of this selfActor too ; -- EVENTs -- 1/2 EVENT OnCellLoad() UnRegisterForUpdate() IF (Weather.GetSkyMode() == 1) ; interior cell, rabbits should not be found here ELSE ; cell is outside RegisterForSingleUpdate(2.5) ;;; RegisterForSingleLOSGain(self.GetActorReference(), akTarget) ; akTarget = RabbitList.GetAt(i) as Actor ENDIF ENDEVENT EVENT OnUnLoad() ; this actor has lost 3d RabbitList.Revert() ; remove all script added forms ENDEVENT ;EVENT OnGainLOS(Actor akViewer, ObjectReference akTarget) ; Debug.Trace("OnGainLOS() - for " +akTarget as Actor) ; bRabbitNear = TRUE ;ENDEVENT EVENT OnUpdate() actor selfActor = self.GetReference() as Actor IF ( selfActor ) int i = RabbitList.GetSize() WHILE (i) i = i - 1 objectReference oRef = RabbitList.GetAt(i) IF ( oRef ) IF (selfActor.GetDistance(oRef) < 1024.0) ; distance to be near bRabbitNear = TRUE RETURN ; - STOP - found a rabbit in range and loaded in same cell ; ------------------ ENDIF ENDIF ENDWHILE RegisterForSingleUpdate(3.5) ; try again in 3.5 sec ENDIF ENDEVENT ; -- FUNCTIONs -- 2 ;--------------------------------------- FUNCTION myF_Store(ObjectReference oRef) ; rabbit holder see "maxRabbit3DScript" ;--------------------------------------- RabbitList.AddForm(oRef as Form) ENDFUNCTION ;---------------------------------------- FUNCTION myF_Remove(ObjectReference oRef) ; rabbit holder see "maxRabbit3DScript" ;---------------------------------------- RabbitList.RemoveAddedForm((oRef as Form) ENDFUNCTION I use this standalone editor as replacement for windows notepad. metapad v3.6 by Alexander Davidson https://liquidninja.com/metapad/translations-download.html Edited December 12, 2020 by ReDragon2013 Link to comment Share on other sites More sharing options...
maxarturo Posted December 13, 2020 Author Share Posted December 13, 2020 (edited) @ ReDragon2013 Thank you for your suggestion and for the time you spend for thinking about this. To add a timer to the reaction / commentary of the droid to overcome its constant reaction caused by the overpopulation of bunnies in Skyrim was the first thing i thought to do, but this removes her innocent childish side. In addition this contradicts directly with one of her personality attributes and mainly her combat ability, "Awareness / Perception", in some cases while in "Hyper Mode" she will detect > teleport and attack the hostile before the player or the player's compass have even seen the enemy, she can "Multi-Teleport / Chain Incapacitation of Enemies Teleportation" to any enemy's position anywhere in the world / worlds. * Before you say: "No player will ever notice or even care about her personality attributes", i've to say that i don't make mods to please any potential downloader, but only to please myself. Plus, i'm perfectionist to the bone !. However, all of the suggestions and ideas that have been posted till now by all of you guys, and my constant search for the cheapest and most reliable workaround have given birth to a F****** AWESOME IDEA !!!!. - The droid will no longer comment on random living bunnies but only to the dead ones she encounters. - A new "Non-Follower" Follower and the 4th Ultimate Mod's Boss wll be added to the 'End Mod Quest', "THE HELL BUNNY" !!!!!. * (currently, the mod has only 2 ultimate bosses, and one of them is a 3 stage transformation boss, "Echidna" the mod's story main protagonist) But all of the above will have to wait since the "Hell Bunny" has the same amount of work that took me to create my "Cyborgautomaton X-Beyond Plus", also the idea i have for the 'End Mod Quest' has an insane amount of work !!, not to mention the 4 add-on side quests that are connected to this and to the main quest and to the whole mod's story... Thanks again and thank all of you guys !!! in part what will be borned will have a part from all of you... Edited December 13, 2020 by maxarturo Link to comment Share on other sites More sharing options...
Recommended Posts