Advertisement
Guest User

Found unexpected '}'

a guest
Oct 23rd, 2018
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.35 KB | None | 0 0
  1. /*
  2. Copyright © CD Projekt RED 2015
  3. */
  4.  
  5.  
  6.  
  7.  
  8. class W3ActorRemains extends W3AnimatedContainer
  9.  
  10. editable var dismemberOnLoot : bool;
  11. editable var dismembermentOnlyWhenLootingTrophy : bool; default dismembermentOnlyWhenLootingTrophy = true;
  12. editable var dismembermentType : EDismembermentWoundTypes; default dismembermentType = DWT_Head;
  13. editable var dismembermentName : name;
  14. editable var manualTrophyTransfer : bool;
  15.  
  16. private var owner : CActor;
  17. private var hasTrophy : bool;
  18. private saved var wasDismembered : bool;
  19. private saved var trophyItemNames : array <name>;
  20.  
  21. event OnSpawned( spawnData : SEntitySpawnData )
  22. {
  23. var commonMapManager : CCommonMapManager;
  24.  
  25. super.OnSpawned( spawnData );
  26.  
  27. if ( spawnData.restored )
  28. {
  29. if ( HasQuestItem() )
  30. {
  31. commonMapManager = theGame.GetCommonMapManager();
  32. commonMapManager.AddQuestLootContainer( this );
  33. }
  34. }
  35. }
  36.  
  37. public function LootDropped(optional own : CActor)
  38. {
  39. owner = own;
  40.  
  41. if(!HasQuestItem())
  42. AddTimer( 'LootTimeout', theGame.params.CONTAINER_DYNAMIC_DESTROY_TIMEOUT );
  43. }
  44.  
  45.  
  46. event OnItemGiven(data : SItemChangedData)
  47. {
  48.  
  49. super.OnItemGiven(data);
  50.  
  51. if ( inv.IsItemTrophy ( data.ids[0] ) )
  52. {
  53. hasTrophy = true;
  54. }
  55.  
  56. if(owner)
  57. owner.RemoveDroppedItem( GetInventory().GetItemName( data.ids[0] ), true );
  58. }
  59.  
  60. event OnItemTaken(itemId : SItemUniqueId, quantity : int)
  61. {
  62. var itemName : name;
  63.  
  64. super.OnItemTaken(itemId, quantity);
  65.  
  66. if ( inv.IsItemTrophy ( itemId ) )
  67. {
  68. itemName = inv.GetItemName ( itemId );
  69.  
  70. trophyItemNames.PushBack ( itemName );
  71. }
  72. if(!HasQuestItem())
  73. StopEffect('quest_highlight_fx');
  74. }
  75.  
  76. public function OnContainerClosed()
  77. {
  78.  
  79. // CA
  80. if (thePlayer.completeAnims.PerformingAnimation())
  81. thePlayer.completeAnims.SetLoop( false );
  82. // PN
  83. thePlayer.PNSetLoop( false );
  84. // PN
  85. if ( CALootAnimType() == LAT_all || CALootAnimType() == LAT_noherb )
  86. thePlayer.GotoState( 'CAInterruption' );
  87. }
  88. // CA
  89. if(!HasQuestItem())
  90. StopEffect('quest_highlight_fx');
  91.  
  92. if ( CanDismember() && owner )
  93. {
  94. theGame.FadeOutAsync(1);
  95. wasDismembered = true;
  96. AddTimer( 'ProcessDismembermentTimer', 2, false );
  97. }
  98. else
  99. {
  100. if ( isPlayingInteractionAnim )
  101. {
  102. thePlayer.PlayerStopAction( interactionAnim );
  103. }
  104.  
  105.  
  106. manualTrophyTransfer = false;
  107.  
  108. FinalizeLooting ();
  109. }
  110.  
  111. }
  112.  
  113. function HasTrophyItems ( ) : bool
  114. {
  115. var trophyIds : array <SItemUniqueId>;
  116.  
  117. trophyIds = inv.GetItemsByCategory( 'trophy' );
  118.  
  119. if ( trophyIds.Size() > 0 )
  120. {
  121. return true;
  122. }
  123. else
  124. {
  125. return false;
  126. }
  127. }
  128.  
  129. function CanDismember () : bool
  130. {
  131. if ( wasDismembered )
  132. {
  133. return false;
  134. }
  135. if ( dismemberOnLoot )
  136. {
  137. if ( !dismembermentOnlyWhenLootingTrophy )
  138. {
  139. return true;
  140. }
  141. else if ( dismembermentOnlyWhenLootingTrophy && hasTrophy && !HasTrophyItems() )
  142. {
  143. return true;
  144. }
  145. else
  146. {
  147. return false;
  148. }
  149. }
  150. else
  151. {
  152. return false;
  153. }
  154. }
  155.  
  156. function FinalizeLooting ()
  157. {
  158. var i : int;
  159. var commonMapManager : CCommonMapManager;
  160. var trophyIds : array <SItemUniqueId>;
  161. var eqId : SItemUniqueId;
  162. var witcher : W3PlayerWitcher;
  163.  
  164. witcher = GetWitcherPlayer();
  165.  
  166. if( !manualTrophyTransfer || !owner )
  167. {
  168. if(witcher)
  169. {
  170. for ( i=0; i < trophyItemNames.Size (); i+=1 )
  171. {
  172. trophyIds = witcher.inv.GetItemsByName( trophyItemNames[i] );
  173.  
  174.  
  175.  
  176.  
  177. eqId = witcher.GetHorseManager().MoveItemToHorse(trophyIds[0]);
  178. witcher.GetHorseManager().EquipItem(eqId);
  179.  
  180. }
  181.  
  182. trophyItemNames.Clear();
  183. }
  184. }
  185.  
  186. if(IsEmpty())
  187. {
  188. commonMapManager = theGame.GetCommonMapManager();
  189. commonMapManager.DeleteQuestLootContainer( this );
  190. UnhighlightEntity();
  191. Enable(false);
  192. Destroy();
  193. }
  194. }
  195.  
  196. function ProcessDismemberment ()
  197. {
  198. if ( owner )
  199. {
  200. if ( dismembermentName == '' )
  201. {
  202. dismembermentName = owner.GetWoundNameFromWoundType ( dismembermentType );
  203. }
  204. owner.SetDismembermentInfo( dismembermentName, owner.GetWorldPosition() - thePlayer.GetWorldPosition(), true );
  205. owner.AddTimer( 'DelayedDismemberTimer', 0.05f );
  206. }
  207.  
  208. if ( isPlayingInteractionAnim )
  209. {
  210. thePlayer.PlayerStopAction( interactionAnim );
  211. }
  212.  
  213. if( manualTrophyTransfer )
  214. {
  215. AddTimer( 'EndAnimationTimer', 2.1f, false );
  216. }
  217. else
  218. {
  219. AddTimer( 'FadeInTimer', 1.0f, false );
  220. }
  221.  
  222. }
  223.  
  224. timer function ProcessDismembermentTimer ( timeDelta : float, id : int )
  225. {
  226. ProcessDismemberment ();
  227. }
  228.  
  229. timer function FadeInTimer ( timeDelta : float, id : int )
  230. {
  231. theGame.FadeInAsync(1);
  232. AddTimer( 'EndAnimationTimer', 1.1f, false );
  233. }
  234.  
  235. timer function EndAnimationTimer( timeDelta : float, id : int )
  236. {
  237. FinalizeLooting ();
  238. }
  239.  
  240.  
  241. timer function LootTimeout( td: float , id : int)
  242. {
  243. if ( VecDistance( GetWorldPosition(), thePlayer.GetWorldPosition() ) < 25.0f )
  244. AddTimer( 'LootTimeout', theGame.params.CONTAINER_DYNAMIC_DESTROY_TIMEOUT );
  245. else
  246. Destroy();
  247. }
  248.  
  249. event OnFocusModeEnabled( enabled : bool )
  250. {
  251. if ( enabled && CanShowFocusInteractionIcon() )
  252. {
  253. PlayEffect( 'remains_highlight' );
  254. }
  255. else
  256. {
  257. StopEffect( 'remains_highlight' );
  258. }
  259. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement