Advertisement
ThoraldGM

Send & Receive Custom Event

Jun 27th, 2016
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.17 KB | None | 0 0
  1.  
  2. ; SCRIPT ATTACHED TO ACTOR SENDS CUSTOM EVENT
  3. ; (Sending script name is: Scavver)
  4.  
  5. Actor Property pScavverActor Auto Const Mandatory ; Scavver ActorRef
  6.  
  7. CustomEvent ScavOnCellUnload ; Custom event! (not a property)
  8.  
  9. ; ... further down in sending script ...
  10.  
  11. If !pScavver.GetParentCell() ; If Scavver enters unloaded cell
  12. If pgvScavverStatusSniffer.GetValue() == 1
  13. Debug.Notification("SCAVVER IS IN UNLOADED CELL.") ; notify dev tracker
  14. EndIf
  15.  
  16. pgvScavverIsInLimbo.SetValue(1) ; flag Scavver as being in limbo
  17. SendCustomEvent("ScavOnCellUnload") ; and notify sweep / travel pkg
  18. EndIf
  19.  
  20.  
  21.  
  22.  
  23. ; SENDING SCRIPT IS ABOVE
  24. ; -----------------------------------------------------------------------------------------------------------
  25. ; RECEIVING SCRIPT IS BELOW
  26.  
  27.  
  28.  
  29.  
  30. ; SCRIPT ATTACHED TO PACKAGE RECEIVES CUSTOM EVENT
  31. ; (Receiving script name is: ScavverSweepPkgTracker)
  32.  
  33. Scavver Property pScavverActor Auto Const ; Script that sends custom event
  34.  
  35. ; IMPORTANT!!!! SCAVVER IS THE SENDING SCRIPT... PSCAVVERACTOR IS THE ACTOR PROPERTY FROM SENDING SCRIPT!!!!
  36. ; NOW PSCAVVERACTOR WILL BE THE PRIMARY LINK TO REGISTER / UNREGISTER CALLS
  37.  
  38. ; -----------------------------------------------------------------------------------------------------------
  39. ; EVENT: ON INIT
  40. ; -----------------------------------------------------------------------------------------------------------
  41.  
  42. Event OnInit()
  43. RegisterForCustomEvent(pScavverActor, "ScavOnCellUnload") ; Scavver sends when in unloaded cell
  44. EndEvent
  45.  
  46. ; -----------------------------------------------------------------------------------------------------------
  47. ; CUSTOM EVENT: SCAV ON CELL UNLOAD (HANDLE CATASTROPHIC DISRUPTION AS IF PACKAGE ENDED NORMALLY)
  48. ; -----------------------------------------------------------------------------------------------------------
  49.  
  50. Event Scavver.ScavOnCellUnload(Scavver akSender, Var[] arguments)
  51. If pgvScavverStatusSniffer.GetValue() == 1 ; If player is dev tracking
  52. Debug.Notification("SCAVVER: CELL UNLOAD DISRUPTED LOOTING.") ; notify pkg terminated by fast travel
  53. EndIf
  54.  
  55. pgvScavverSweepUnloaded.SetValue(1) ; Flag as interrupted by fast travel
  56. pgvScavverIsInLimbo.SetValue(1) ; Scavver is in unloaded cell!
  57. EndMySweepPackage() ; End sweep package
  58. EndEvent
  59.  
  60. ; ... further down in receiving script ...
  61.  
  62. UnregisterForCustomEvent(pScavverActor, "ScavOnCellUnload") ; Stop listening for custom event
  63.  
  64.  
  65.  
  66. ; -----------------------------------------------------------------------------------------------------------
  67. ;
  68. ; COMPILED BUT NOT TESTED YET. THANKS ASHNAL AND GENERALLUBU, ALSO THANKS TO SCRIVENER07 (SEE LINK)
  69. ;
  70. ; SEE ALSO: http://www.creationkit.com/fallout4/index.php?title=Talk:Custom_Papyrus_Events
  71. ;
  72. ; -----------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement