‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
callbacks_shared.gsc
Go to the documentation of this file.
1 #using scripts\shared\array_shared;
2 #using scripts\shared\audio_shared;
3 #using scripts\shared\flagsys_shared;
4 #using scripts\shared\hud_shared;
5 #using scripts\shared\simple_hostmigration;
6 #using scripts\shared\system_shared;
7 
8 #insert scripts\shared\shared.gsh;
9 #insert scripts\shared\ai\systems\animation_state_machine.gsh;
10 
11 #namespace callback;
12 
13 #precache( "eventstring", "open_side_mission_countdown" );
14 #precache( "eventstring", "close_side_mission_countdown" );
15 
16 function ‪callback( event, params )
17 {
18  if ( isdefined( level._callbacks ) && isdefined( level._callbacks[event] ) )
19  {
20  for ( i = 0; i < level._callbacks[event].size; i++ )
21  {
22  ‪callback = level._callbacks[event][i][0];
23  obj = level._callbacks[event][i][1];
24 
25  if ( !isdefined( ‪callback ) )
26  {
27  continue;
28  }
29 
30  if ( isdefined( obj ) )
31  {
32  if ( isdefined( params ) )
33  {
34  obj thread [[‪callback]]( self, params );
35  }
36  else
37  {
38  obj thread [[‪callback]]( self );
39  }
40  }
41  else
42  {
43  if ( isdefined( params ) )
44  {
45  self thread [[‪callback]]( params );
46  }
47  else
48  {
49  self thread [[‪callback]]();
50  }
51  }
52  }
53  }
54 }
55 
56 function ‪add_callback( event, func, obj )
57 {
58  assert( isdefined( event ), "Trying to set a callback on an undefined event." );
59 
60  if ( !isdefined( level._callbacks ) || !isdefined( level._callbacks[event] ) )
61  {
62  level._callbacks[event] = [];
63  }
64 
65  foreach( ‪callback in level._callbacks[event] )
66  {
67  if( ‪callback[0] == func )
68  {
69  if( !isdefined( obj ) || ‪callback[1] == obj )
70  {
71  return;
72  }
73  }
74  }
75 
76  ‪array::add( level._callbacks[event], ‪array( func, obj ), false );
77 
78  if ( isdefined( obj ) )
79  {
80  obj thread ‪remove_callback_on_death( event, func );
81  }
82 }
83 
84 function ‪remove_callback_on_death( event, func )
85 {
86  self waittill( "death" );
87  ‪remove_callback( event, func, self );
88 }
89 
90 function ‪remove_callback( event, func, obj )
91 {
92  assert( isdefined( event ), "Trying to remove a callback on an undefined event." );
93  assert( isdefined( level._callbacks[event] ), "Trying to remove callback for unknown event." );
94 
95  foreach ( index, func_group in level._callbacks[event] )
96  {
97  if ( func_group[0] == func )
98  {
99  if ( ‪IS_EQUAL( func_group[1], obj ) )
100  {
101  ArrayRemoveIndex( level._callbacks[event], index, false );
102  break; // callback to remove has been found, don't process anything else in the array; add_callback disallows dupes
103  }
104  }
105  }
106 }
107 
108 function ‪on_finalize_initialization( func, obj )
109 {
110  ‪add_callback( #"on_finalize_initialization", func, obj );
111 }
112 
122 function ‪on_connect( func, obj )
123 {
124  ‪add_callback( #"on_player_connect", func, obj );
125 }
126 
134 function ‪remove_on_connect( func, obj )
135 {
136  ‪remove_callback( #"on_player_connect", func, obj );
137 }
138 
146 function ‪on_connecting( func, obj )
147 {
148  ‪add_callback( #"on_player_connecting", func, obj );
149 }
150 
159 function ‪remove_on_connecting( func, obj )
160 {
161  ‪remove_callback( #"on_player_connecting", func, obj );
162 }
163 
164 function ‪on_disconnect( func, obj )
165 {
166  ‪add_callback( #"on_player_disconnect", func, obj );
167 }
168 
177 function ‪remove_on_disconnect( func, obj )
178 {
179  ‪remove_callback( #"on_player_disconnect", func, obj );
180 }
181 
189 function ‪on_spawned( func, obj )
190 {
191  ‪add_callback( #"on_player_spawned", func, obj );
192 }
193 
201 function ‪remove_on_spawned( func, obj )
202 {
203  ‪remove_callback( #"on_player_spawned", func, obj );
204 }
205 
213 function ‪on_loadout( func, obj )
214 {
215  ‪add_callback( #"on_loadout", func, obj );
216 }
217 
225 function ‪remove_on_loadout( func, obj )
226 {
227  ‪remove_callback( #"on_loadout", func, obj );
228 }
229 
238 function ‪on_player_damage( func, obj )
239 {
240  ‪add_callback( #"on_player_damage", func, obj );
241 }
242 
251 function ‪remove_on_player_damage( func, obj )
252 {
253  ‪remove_callback( #"on_player_damage", func, obj );
254 }
255 
264 function ‪on_start_gametype( func, obj )
265 {
266  ‪add_callback( #"on_start_gametype", func, obj );
267 }
268 
277 function ‪on_joined_team( func, obj )
278 {
279  ‪add_callback( #"on_joined_team", func, obj );
280 }
281 
290 function ‪on_joined_spectate( func, obj )
291 {
292  ‪add_callback( #"on_joined_spectate", func, obj );
293 }
294 
304 function ‪on_player_killed( func, obj )
305 {
306  ‪add_callback( #"on_player_killed", func, obj );
307 }
308 
318 function ‪remove_on_player_killed( func, obj )
319 {
320  ‪remove_callback( #"on_player_killed", func, obj );
321 }
322 
331 function ‪on_ai_killed( func, obj )
332 {
333  ‪add_callback( #"on_ai_killed", func, obj );
334 }
335 
344 function ‪remove_on_ai_killed( func, obj )
345 {
346  ‪remove_callback( #"on_ai_killed", func, obj );
347 }
348 
357 function ‪on_actor_killed( func, obj )
358 {
359  ‪add_callback( #"on_actor_killed", func, obj );
360 }
361 
370 function ‪remove_on_actor_killed( func, obj )
371 {
372  ‪remove_callback( #"on_actor_killed", func, obj );
373 }
374 
383 function ‪on_vehicle_spawned( func, obj )
384 {
385  ‪add_callback( #"on_vehicle_spawned", func, obj );
386 }
387 
396 function ‪remove_on_vehicle_spawned( func, obj )
397 {
398  ‪remove_callback( #"on_vehicle_spawned", func, obj );
399 }
400 
409 function ‪on_vehicle_killed( func, obj )
410 {
411  ‪add_callback( #"on_vehicle_killed", func, obj );
412 }
413 
422 function ‪remove_on_vehicle_killed( func, obj )
423 {
424  ‪remove_callback( #"on_vehicle_killed", func, obj );
425 }
426 
435 function ‪on_ai_damage( func, obj )
436 {
437  ‪add_callback( #"on_ai_damage", func, obj );
438 }
439 
448 function ‪remove_on_ai_damage( func, obj )
449 {
450  ‪remove_callback( #"on_ai_damage", func, obj );
451 }
452 
461 function ‪on_ai_spawned( func, obj )
462 {
463  ‪add_callback( #"on_ai_spawned", func, obj );
464 }
465 
474 function ‪remove_on_ai_spawned( func, obj )
475 {
476  ‪remove_callback( #"on_ai_spawned", func, obj );
477 }
478 
479 
488 function ‪on_actor_damage( func, obj )
489 {
490  ‪add_callback( #"on_actor_damage", func, obj );
491 }
492 
501 function ‪remove_on_actor_damage( func, obj )
502 {
503  ‪remove_callback( #"on_actor_damage", func, obj );
504 }
505 
506 
516 function ‪on_vehicle_damage( func, obj )
517 {
518  ‪add_callback( #"on_vehicle_damage", func, obj );
519 }
520 
529 function ‪remove_on_vehicle_damage( func, obj )
530 {
531  ‪remove_callback( #"on_vehicle_damage", func, obj );
532 }
533 
543 function ‪on_laststand( func, obj )
544 {
545  ‪add_callback( #"on_player_laststand", func, obj );
546 }
547 
557 function ‪on_challenge_complete( func, obj )
558 {
559  ‪add_callback( #"on_challenge_complete", func, obj );
560 }
561 
562 /*================
563 Called by code before level main but after autoexecs
564 ================*/
566 {
567  ‪callback::callback( #"on_pre_initialization" );
569 }
570 
571 /*================
572 Called by code as the final step of initialization
573 ================*/
575 {
577  ‪callback::callback( #"on_finalize_initialization" );
578 }
579 
580 function ‪add_weapon_damage( weapontype, ‪callback )
581 {
582  if ( !isdefined( level.weapon_damage_callback_array ) )
583  {
584  level.weapon_damage_callback_array = [];
585  }
586 
587  level.weapon_damage_callback_array[weapontype] = ‪callback;
588 }
589 
590 function ‪callback_weapon_damage( eAttacker, eInflictor, weapon, meansOfDeath, ‪damage )
591 {
592  if( isdefined( level.weapon_damage_callback_array ) )
593  {
594  if ( isdefined( level.weapon_damage_callback_array[weapon] ) )
595  {
596  self thread [[level.weapon_damage_callback_array[weapon]]]( eAttacker, eInflictor, weapon, meansOfDeath, ‪damage );
597  return true;
598  }
599  else if ( isdefined( level.weapon_damage_callback_array[weapon.rootWeapon] ) )
600  {
601  self thread [[level.weapon_damage_callback_array[weapon.rootWeapon]]]( eAttacker, eInflictor, weapon, meansOfDeath, ‪damage );
602  return true;
603  }
604  }
605 
606  return false;
607 }
608 
610 {
611  if ( !isdefined( level.weapon_watcher_callback_array ) )
612  {
613  level.weapon_watcher_callback_array = [];
614  }
615 
616  ‪array::add( level.weapon_watcher_callback_array, ‪callback );
617 }
618 
620 {
621  if( isdefined( level.weapon_watcher_callback_array ) )
622  {
623  for( x = 0; x < level.weapon_watcher_callback_array.size; x++ )
624  {
625  self [[level.weapon_watcher_callback_array[x]]]();
626  }
627  }
628 }
629 
631 // Files moved from _callbacksetup.gsc
633 
634 /*================
635 Called by code after the level's main script function has run.
636 ================*/
638 {
639  // If the gametype has not been started, run the startup
640  if(!isdefined(level.gametypestarted) || !level.gametypestarted)
641  {
642  [[level.callbackStartGameType]]();
643 
644  level.gametypestarted = true; // so we know that the gametype has been started up
645  }
646 }
647 
648 /*================
649 Called when a player begins connecting to the server.
650 Called again for every map change or tournement restart.
651 
652 Return undefined if the client should be allowed, otherwise return
653 a string with the reason for denial.
654 
655 Otherwise, the client will be sent the current gamestate
656 and will eventually get to ClientBegin.
657 
658 firstTime will be qtrue the very first time a client connects
659 to the server machine, but qfalse on map changes and tournement
660 restarts.
661 ================*/
663 {
664  self endon("disconnect");
665 
666  [[level.callbackPlayerConnect]]();
667 }
668 
669 /*================
670 Called when a player drops from the server.
671 Will not be called between levels.
672 self is the player that is disconnecting.
673 ================*/
675 {
676  self notify( "death" );
677 
678  self.player_disconnected = true;
679  self notify("disconnect");
680  level notify("disconnect", self);
681 
682  [[level.callbackPlayerDisconnect]]();
683 
684  ‪callback::callback( #"on_player_disconnect" );
685 }
686 
687 /*================
688 Called when we want to setup the game type details from host migration
689 ================*/
691 {
692 /# PrintLn("****CodeCallback_Migration_SetupGameType****"); #/
694 }
695 
696 /*================
697 Called when a host migration has occurred
698 ================*/
700 {
701 /# PrintLn("****CodeCallback_HostMigration****"); #/
702  [[level.callbackHostMigration]]();
703 }
704 
705 
706 /*================
707 Called when a host migration save has occurred
708 ================*/
710 {
711 /# PrintLn("****CodeCallback_HostMigrationSave****"); #/
712  [[level.callbackHostMigrationSave]]();
713 }
714 
716 {
717 /# PrintLn("****CodeCallback_PreHostMigrationSave****"); #/
718  [[level.callbackPreHostMigrationSave]]();
719 }
720 
721 
722 /*================
723 Called when a player migration has occurred
724 ================*/
726 {
727 /# PrintLn("****CodeCallback_PlayerMigrated****"); #/
728  [[level.callbackPlayerMigrated]]();
729 }
730 
731 
732 /*================
733 Called when a player has taken damage.
734 self is the player that took damage.
735 ================*/
736 function ‪CodeCallback_PlayerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, weapon, vPoint, vDir, sHitLoc, vDamageOrigin, timeOffset, boneIndex, vSurfaceNormal)
737 {
738  self endon("disconnect");
739  [[level.callbackPlayerDamage]](eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, weapon, vPoint, vDir, sHitLoc, vDamageOrigin, timeOffset, boneIndex, vSurfaceNormal);
740 }
741 
742 /*================
743 Called when a player has been killed.
744 self is the player that was killed.
745 ================*/
746 function ‪CodeCallback_PlayerKilled(eInflictor, eAttacker, iDamage, sMeansOfDeath, weapon, vDir, sHitLoc, timeOffset, deathAnimDuration)
747 {
748  self endon("disconnect");
749  [[level.callbackPlayerKilled]](eInflictor, eAttacker, iDamage, sMeansOfDeath, weapon, vDir, sHitLoc, timeOffset, deathAnimDuration);
750 }
751 
752 /*================
753 Called when a player has been killed, but has last stand perk.
754 self is the player that was killed.
755 ================*/
756 function ‪CodeCallback_PlayerLastStand(eInflictor, eAttacker, iDamage, sMeansOfDeath, weapon, vDir, sHitLoc, timeOffset, delayOverride )
757 {
758  self endon("disconnect");
759  [[level.callbackPlayerLastStand]](eInflictor, eAttacker, iDamage, sMeansOfDeath, weapon, vDir, sHitLoc, timeOffset, delayOverride );
760 }
761 
762 /*================
763 Called when a player has been melee'd.
764 self is the player that was melee'd
765 ================*/
766 function ‪CodeCallback_PlayerMelee( eAttacker, iDamage, weapon, vOrigin, vDir, boneIndex, shieldHit, fromBehind )
767 {
768  self endon("disconnect");
769  [[level.callbackPlayerMelee]]( eAttacker, iDamage, weapon, vOrigin, vDir, boneIndex, shieldHit, fromBehind );
770 }
771 
772 
773 /*================
774 Called when a actor has spawned.
775 self is the actor that spawned.
776 ================*/
777 function ‪CodeCallback_ActorSpawned( spawner )
778 {
779  [[level.callbackActorSpawned]]( spawner );
780 }
781 
782 
783 /*================
784 Called when a actor has taken damage.
785 self is the actor that took damage.
786 ================*/
787 function ‪CodeCallback_ActorDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, weapon, vPoint, vDir, sHitLoc, vDamageOrigin, timeOffset, boneIndex, modelIndex, surfaceType, surfaceNormal)
788 {
789  [[level.callbackActorDamage]](eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, weapon, vPoint, vDir, sHitLoc, vDamageOrigin, timeOffset, boneIndex, modelIndex, surfaceType, surfaceNormal );
790 }
791 
792 /*================
793 Called when a actor has been killed.
794 self is the actor that was killed.
795 ================*/
796 function ‪CodeCallback_ActorKilled(eInflictor, eAttacker, iDamage, sMeansOfDeath, weapon, vDir, sHitLoc, timeOffset)
797 {
798  [[level.callbackActorKilled]](eInflictor, eAttacker, iDamage, sMeansOfDeath, weapon, vDir, sHitLoc, timeOffset);
799 }
800 
801 /*================
802 Called when a actor has been cloned.
803 self is the newly created clone.
804 ================*/
805 function ‪CodeCallback_ActorCloned(original)
806 {
807  [[level.callbackActorCloned]](original);
808 }
809 
810 /*================
811 Called when a vehicle has spawned.
812 self is the vehicle that spawned.
813 ================*/
815 {
816  if (IsDefined(level.callbackVehicleSpawned))
817  [[level.callbackVehicleSpawned]]( spawner );
818 }
819 
820 /*================
821 Called when a vehicle has been killed.
822 self is the vehicle that has been killed.
823 ================*/
824 
825 function ‪codecallback_vehiclekilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, weapon, vDir, sHitLoc, psOffsetTime )
826 {
827  [[level.callbackVehicleKilled]](eInflictor, eAttacker, iDamage, sMeansOfDeath, weapon, vDir, sHitLoc, psOffsetTime);
828 }
829 
830 
831 /*================
832 Called when a vehicle has taken damage.
833 self is the vehicl that took damage.
834 ================*/
835 function ‪CodeCallback_VehicleDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, weapon, vPoint, vDir, sHitLoc, vDamageOrigin, timeOffset, damageFromUnderneath, modelIndex, partName, vSurfaceNormal)
836 {
837  [[level.callbackVehicleDamage]](eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, weapon, vPoint, vDir, sHitLoc, vDamageOrigin, timeOffset, damageFromUnderneath, modelIndex, partName, vSurfaceNormal);
838 }
839 
840 
841 /*================
842 Called when a vehicle has taken damage.
843 self is the vehicl that took damage.
844 ================*/
845 function ‪CodeCallback_VehicleRadiusDamage(eInflictor, eAttacker, iDamage, fInnerDamage, fOuterDamage, iDFlags, sMeansOfDeath, weapon, vPoint, fRadius, fConeAngleCos, vConeDir, timeOffset)
846 {
847  [[level.callbackVehicleRadiusDamage]](eInflictor, eAttacker, iDamage, fInnerDamage, fOuterDamage, iDFlags, sMeansOfDeath, weapon, vPoint, fRadius, fConeAngleCos, vConeDir, timeOffset);
848 }
849 
851 {
852  self endon( "death" );
853  self waittillmatch( "custom_traversal_anim_finished", "end" );
854 
855  self finishtraversal();
856  self Unlink();
857 
858  self.useGoalAnimWeight = false;
859  self.blockingPain = false;
860 
861  self.customTraverseEndNode = undefined;
862  self.customTraverseStartNode = undefined;
863 
864  self notify( "custom_traversal_cleanup" );
865 }
866 
868 {
869  self endon( "custom_traversal_cleanup" );
870  self waittill( "death" );
871 
872  if ( isdefined( self ) )
873  {
874  self finishtraversal();
875  self StopAnimScripted();
876  self Unlink();
877  }
878 }
879 
880 /*================
881 Called from code to register custom
882 traversal animations
883 ================*/
884 
885 function ‪CodeCallback_PlayCustomTraversal( entity, beginParent, endParent, origin, angles, animHandle, animMode, playbackSpeed, goalTime, lerpTime )
886 {
887  entity.blockingPain = true;
888  entity.useGoalAnimWeight = true;
889 
890  entity.customTraverseEndNode = entity.traverseEndNode;
891  entity.customTraverseStartNode = entity.traverseStartNode;
892 
893  entity AnimMode( ‪AI_ANIM_USE_BOTH_DELTAS_NOCLIP, false );
894  entity OrientMode( "face angle", angles[1] );
895 
896  if ( IsDefined( endParent ) )
897  {
898  offset = entity.origin - endParent.origin;
899  entity LinkTo( endParent, "", offset );
900  }
901 
902  entity AnimScripted( "custom_traversal_anim_finished", origin, angles, animHandle, animMode, undefined, playbackSpeed, goalTime, lerpTime );
903 
904  entity thread ‪finishCustomTraversalListener();
905  entity thread ‪killedCustomTraversalListener();
906 }
907 
908 // CODER_MOD - LDS - 06/02/10 - Callback to inform facial animation system of new event
909 function ‪CodeCallback_FaceEventNotify( notify_msg, ent )
910 {
911  if( isdefined( ent ) && isdefined( ent.do_face_anims ) && ent.do_face_anims )
912  {
913  if( isdefined( level.face_event_handler ) && isdefined( level.face_event_handler.events[notify_msg] ) )
914  {
915  ent SendFaceEvent( level.face_event_handler.events[notify_msg] );
916  }
917  }
918 }
919 
920 /*================
921 Called when a menu message is recieved
922 ================*/
923 function ‪CodeCallback_MenuResponse( action, arg )
924 {
925  //append to the message queue
926  if (!isdefined(level.MenuResponseQueue))
927  {
928  level.MenuResponseQueue=[];
929  level thread ‪menu_response_queue_pump();
930  }
931 
932  index=level.MenuResponseQueue.size;
933  level.MenuResponseQueue[index]=SpawnStruct();
934  level.MenuResponseQueue[index].action=action;
935  level.MenuResponseQueue[index].arg=arg;
936  level.MenuResponseQueue[index].ent=self;
937  level notify("menuresponse_queue");
938 }
939 
941 {
942  while(1)
943  {
944  level waittill("menuresponse_queue");
945  do
946  {
947  level.MenuResponseQueue[0].ent notify("menuresponse",level.MenuResponseQueue[0].action,level.MenuResponseQueue[0].arg);
948  ArrayRemoveIndex(level.MenuResponseQueue,0,false);
950  }
951  while (level.MenuResponseQueue.size>0);
952  }
953 }
954 
955 /*================
956 Called when an animation notetrack for calling a script function is encountered.
957 pSelf is the entity playing the animation that is executing the notetrack
958 label is the label set for the function to be called
959 param is a string containing all parameters passed through the notetrack
960 ================*/
961 function ‪CodeCallback_CallServerScript( pSelf, label, param )
962 {
963  if ( !IsDefined( level._animnotifyfuncs ) )
964  return;
965 
966  if ( IsDefined( level._animnotifyfuncs[ label ] ) )
967  {
968  pSelf [[ level._animnotifyfuncs[ label ] ]]( param );
969  }
970 }
971 
973 {
974  if ( !IsDefined( level._animnotifyfuncs ) )
975  return;
976 
977  if ( IsDefined( level._animnotifyfuncs[ label ] ) )
978  {
979  level [[ level._animnotifyfuncs[ label ] ]]( param );
980  }
981 }
982 
983 /*================
984 Called when lui needs to trigger a mission switch
985 ================*/
986 function ‪CodeCallback_LaunchSideMission( str_mapname, str_gametype, int_list_index, int_lighting )
987 {
988  switchmap_preload( str_mapname, str_gametype, int_lighting );
989 
990  LUINotifyEvent( &"open_side_mission_countdown", 1, int_list_index );
991 
992  wait( 10.0 );
993 
994  LUINotifyEvent( &"close_side_mission_countdown" );
995 
996  switchmap_switch();
997 }
998 
999 function ‪CodeCallback_FadeBlackscreen( duration, blendTime )
1000 {
1001  for( i = 0; i < level.players.size; i++ )
1002  {
1003  if( IsDefined( level.players[i] ) )
1004  {
1005  level.players[i] thread ‪hud::fade_to_black_for_x_sec( 0, duration, blendTime, blendTime );
1006  }
1007  }
1008 }
1009 
1011 {
1012  self notify("setcybercomability", new_ability);
1013 }
1014 
1015 /*================
1016 Called when a gametype is not supported.
1017 ================*/
1018 function ‪abort_level()
1019 {
1020 /# println("ERROR: Aborting level - gametype is not supported"); #/
1021 
1022  level.callbackStartGameType =&‪callback_void;
1023  level.callbackPlayerConnect =&‪callback_void;
1024  level.callbackPlayerDisconnect =&‪callback_void;
1025  level.callbackPlayerDamage =&‪callback_void;
1026  level.callbackPlayerKilled =&‪callback_void;
1027  level.callbackPlayerLastStand =&‪callback_void;
1028  level.callbackPlayerMelee =&‪callback_void;
1029  level.callbackActorDamage =&‪callback_void;
1030  level.callbackActorKilled =&‪callback_void;
1031  level.callbackVehicleDamage =&‪callback_void;
1032  level.callbackVehicleKilled = &‪callback_void;
1033  level.callbackActorSpawned =&‪callback_void;
1034  level.callbackBotEnteredUserEdge =&‪callback_void;
1035 
1036  if( isdefined( level._gametype_default ) )
1037  {
1038  SetDvar( "g_gametype", level._gametype_default );
1039  }
1040 
1041  exitLevel(false);
1042 }
1043 
1044 function ‪CodeCallback_GlassSmash(pos, dir)
1045 {
1046  level notify("glass_smash", pos, dir);
1047 }
1048 
1049 /*================
1050 Called when a bot enters a user edge
1051 ================*/
1052 function ‪CodeCallback_BotEnteredUserEdge( startNode, endNode )
1053 {
1054  [[level.callbackBotEnteredUserEdge]]( startNode, endNode );
1055 }
1056 
1058 // CP Decorations Achievment
1060 #precache( "string", "CP_ALL_DECORATIONS" );
1061 
1062 #define N_DECORATION_COUNT 12
1064 {
1065  a_decorations = self GetDecorations( true );
1066 
1067  if (!isdefined(a_decorations))
1068  {
1069  return;
1070  }
1071 
1072  if ( a_decorations.size == ‪N_DECORATION_COUNT )
1073  {
1074  self notify( "give_achievement", "CP_ALL_DECORATIONS" );
1075  }
1076 
1077  a_all_decorations = self GetDecorations();
1078  if ( a_decorations.size == a_all_decorations.size - 1 )
1079  {
1080  self GiveDecoration( "cp_medal_all_decorations" );
1081  }
1082 
1083  level notify( "decoration_awarded" );
1084 
1085  [[level.callbackDecorationAwarded]]();
1086 }
1087 
1088 /*================
1089 ================*/
1091 {
1092 }
1093 
‪remove_on_vehicle_spawned
‪function remove_on_vehicle_spawned(func, obj)
Definition: callbacks_shared.gsc:396
‪CodeCallback_FaceEventNotify
‪function CodeCallback_FaceEventNotify(notify_msg, ent)
Definition: callbacks_shared.gsc:909
‪CodeCallback_VehicleSpawned
‪function CodeCallback_VehicleSpawned(spawner)
Definition: callbacks_shared.gsc:814
‪remove_on_player_killed
‪function remove_on_player_killed(func, obj)
Definition: callbacks_shared.gsc:318
‪remove_on_ai_killed
‪function remove_on_ai_killed(func, obj)
Definition: callbacks_shared.gsc:344
‪CodeCallback_PlayerKilled
‪function CodeCallback_PlayerKilled(eInflictor, eAttacker, iDamage, sMeansOfDeath, weapon, vDir, sHitLoc, timeOffset, deathAnimDuration)
Definition: callbacks_shared.gsc:746
‪on_ai_damage
‪function on_ai_damage(func, obj)
Definition: callbacks_shared.gsc:435
‪remove_on_connect
‪function remove_on_connect(func, obj)
Definition: callbacks_shared.gsc:134
‪remove_callback_on_death
‪function remove_callback_on_death(event, func)
Definition: callbacks_shared.gsc:84
‪add_callback
‪function add_callback(event, func, obj)
Definition: callbacks_shared.gsc:56
‪callback
‪function callback(event, params)
Definition: callbacks_shared.gsc:16
‪remove_on_spawned
‪function remove_on_spawned(func, obj)
Definition: callbacks_shared.gsc:201
‪on_ai_spawned
‪function on_ai_spawned(func, obj)
Definition: callbacks_shared.gsc:461
‪on_actor_damage
‪function on_actor_damage(func, obj)
Definition: callbacks_shared.gsc:488
‪remove_on_connecting
‪function remove_on_connecting(func, obj)
Definition: callbacks_shared.gsc:159
‪on_vehicle_spawned
‪function on_vehicle_spawned(func, obj)
Definition: callbacks_shared.gsc:383
‪N_DECORATION_COUNT
‪#define N_DECORATION_COUNT
Definition: callbacks_shared.gsc:1062
‪codecallback_vehiclekilled
‪function codecallback_vehiclekilled(eInflictor, eAttacker, iDamage, sMeansOfDeath, weapon, vDir, sHitLoc, psOffsetTime)
Definition: callbacks_shared.gsc:825
‪remove_on_vehicle_killed
‪function remove_on_vehicle_killed(func, obj)
Definition: callbacks_shared.gsc:422
‪CodeCallback_PlayerDamage
‪function CodeCallback_PlayerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, weapon, vPoint, vDir, sHitLoc, vDamageOrigin, timeOffset, boneIndex, vSurfaceNormal)
Definition: callbacks_shared.gsc:736
‪on_disconnect
‪function on_disconnect(func, obj)
Definition: callbacks_shared.gsc:164
‪on_laststand
‪function on_laststand(func, obj)
Definition: callbacks_shared.gsc:543
‪CodeCallback_ActorDamage
‪function CodeCallback_ActorDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, weapon, vPoint, vDir, sHitLoc, vDamageOrigin, timeOffset, boneIndex, modelIndex, surfaceType, surfaceNormal)
Definition: callbacks_shared.gsc:787
‪CodeCallback_SetActiveCybercomAbility
‪function CodeCallback_SetActiveCybercomAbility(new_ability)
Definition: callbacks_shared.gsc:1010
‪CodeCallback_PlayerConnect
‪function CodeCallback_PlayerConnect()
Definition: callbacks_shared.gsc:662
‪CodeCallback_HostMigrationSave
‪function CodeCallback_HostMigrationSave()
Definition: callbacks_shared.gsc:709
‪on_start_gametype
‪function on_start_gametype(func, obj)
Definition: callbacks_shared.gsc:264
‪remove_on_loadout
‪function remove_on_loadout(func, obj)
Definition: callbacks_shared.gsc:225
‪on_player_killed
‪function on_player_killed(func, obj)
Definition: callbacks_shared.gsc:304
‪add
‪function add(entity, dyingplayer, team, timeout)
Definition: _deathicons.gsc:43
‪CodeCallback_BotEnteredUserEdge
‪function CodeCallback_BotEnteredUserEdge(startNode, endNode)
Definition: callbacks_shared.gsc:1052
‪damage
‪function damage(trap)
Definition: _zm_trap_electric.gsc:116
‪CodeCallback_MenuResponse
‪function CodeCallback_MenuResponse(action, arg)
Definition: callbacks_shared.gsc:923
‪CodeCallback_Migration_SetupGameType
‪function CodeCallback_Migration_SetupGameType()
Definition: callbacks_shared.gsc:690
‪CodeCallback_PreHostMigrationSave
‪function CodeCallback_PreHostMigrationSave()
Definition: callbacks_shared.gsc:715
‪remove_callback
‪function remove_callback(event, func, obj)
Definition: callbacks_shared.gsc:90
‪on_vehicle_killed
‪function on_vehicle_killed(func, obj)
Definition: callbacks_shared.gsc:409
‪AI_ANIM_USE_BOTH_DELTAS_NOCLIP
‪#define AI_ANIM_USE_BOTH_DELTAS_NOCLIP
Definition: animation_state_machine.gsh:83
‪remove_on_player_damage
‪function remove_on_player_damage(func, obj)
Definition: callbacks_shared.gsc:251
‪CodeCallback_PlayerMigrated
‪function CodeCallback_PlayerMigrated()
Definition: callbacks_shared.gsc:725
‪menu_response_queue_pump
‪function menu_response_queue_pump()
Definition: callbacks_shared.gsc:940
‪fade_to_black_for_x_sec
‪function fade_to_black_for_x_sec(startwait, blackscreenwait, fadeintime, fadeouttime, shaderName)
Definition: hud_shared.gsc:250
‪CodeCallback_CallServerScript
‪function CodeCallback_CallServerScript(pSelf, label, param)
Definition: callbacks_shared.gsc:961
‪finishCustomTraversalListener
‪function finishCustomTraversalListener()
Definition: callbacks_shared.gsc:850
‪CodeCallback_PlayerLastStand
‪function CodeCallback_PlayerLastStand(eInflictor, eAttacker, iDamage, sMeansOfDeath, weapon, vDir, sHitLoc, timeOffset, delayOverride)
Definition: callbacks_shared.gsc:756
‪CodeCallback_PlayCustomTraversal
‪function CodeCallback_PlayCustomTraversal(entity, beginParent, endParent, origin, angles, animHandle, animMode, playbackSpeed, goalTime, lerpTime)
Definition: callbacks_shared.gsc:885
‪CodeCallback_PreInitialization
‪function CodeCallback_PreInitialization()
Definition: callbacks_shared.gsc:565
‪CodeCallback_PlayerDisconnect
‪function CodeCallback_PlayerDisconnect()
Definition: callbacks_shared.gsc:674
‪Migration_SetupGameType
‪function Migration_SetupGameType()
Definition: simple_hostmigration.gsc:5
‪CodeCallback_PlayerMelee
‪function CodeCallback_PlayerMelee(eAttacker, iDamage, weapon, vOrigin, vDir, boneIndex, shieldHit, fromBehind)
Definition: callbacks_shared.gsc:766
‪on_vehicle_damage
‪function on_vehicle_damage(func, obj)
Definition: callbacks_shared.gsc:516
‪array
‪function filter array
Definition: array_shared.csc:16
‪add_weapon_watcher
‪function add_weapon_watcher(callback)
Definition: callbacks_shared.gsc:609
‪CodeCallback_ActorKilled
‪function CodeCallback_ActorKilled(eInflictor, eAttacker, iDamage, sMeansOfDeath, weapon, vDir, sHitLoc, timeOffset)
Definition: callbacks_shared.gsc:796
‪abort_level
‪function abort_level()
Definition: callbacks_shared.gsc:1018
‪add_weapon_damage
‪function add_weapon_damage(weapontype, callback)
Definition: callbacks_shared.gsc:580
‪on_joined_team
‪function on_joined_team(func, obj)
Definition: callbacks_shared.gsc:277
‪on_actor_killed
‪function on_actor_killed(func, obj)
Definition: callbacks_shared.gsc:357
‪remove_on_disconnect
‪function remove_on_disconnect(func, obj)
Definition: callbacks_shared.gsc:177
‪remove_on_ai_damage
‪function remove_on_ai_damage(func, obj)
Definition: callbacks_shared.gsc:448
‪remove_on_actor_killed
‪function remove_on_actor_killed(func, obj)
Definition: callbacks_shared.gsc:370
‪on_joined_spectate
‪function on_joined_spectate(func, obj)
Definition: callbacks_shared.gsc:290
‪on_challenge_complete
‪function on_challenge_complete(func, obj)
Definition: callbacks_shared.gsc:557
‪run_pre_systems
‪function run_pre_systems()
Definition: system_shared.csc:128
‪on_player_damage
‪function on_player_damage(func, obj)
Definition: callbacks_shared.gsc:238
‪on_loadout
‪function on_loadout(func, obj)
Definition: callbacks_shared.gsc:213
‪on_connect
‪function on_connect(func, obj)
Definition: callbacks_shared.gsc:122
‪IS_EQUAL
‪#define IS_EQUAL(__a, __b)
Definition: shared.gsh:250
‪CodeCallback_ActorCloned
‪function CodeCallback_ActorCloned(original)
Definition: callbacks_shared.gsc:805
‪CodeCallback_VehicleRadiusDamage
‪function CodeCallback_VehicleRadiusDamage(eInflictor, eAttacker, iDamage, fInnerDamage, fOuterDamage, iDFlags, sMeansOfDeath, weapon, vPoint, fRadius, fConeAngleCos, vConeDir, timeOffset)
Definition: callbacks_shared.gsc:845
‪CodeCallback_FinalizeInitialization
‪function CodeCallback_FinalizeInitialization()
Definition: callbacks_shared.gsc:574
‪callback_weapon_damage
‪function callback_weapon_damage(eAttacker, eInflictor, weapon, meansOfDeath, damage)
Definition: callbacks_shared.gsc:590
‪remove_on_actor_damage
‪function remove_on_actor_damage(func, obj)
Definition: callbacks_shared.gsc:501
‪CodeCallback_StartGameType
‪function CodeCallback_StartGameType()
Definition: callbacks_shared.gsc:637
‪run_post_systems
‪function run_post_systems()
Definition: system_shared.csc:82
‪callback_weapon_watcher
‪function callback_weapon_watcher()
Definition: callbacks_shared.gsc:619
‪remove_on_vehicle_damage
‪function remove_on_vehicle_damage(func, obj)
Definition: callbacks_shared.gsc:529
‪CodeCallback_HostMigration
‪function CodeCallback_HostMigration()
Definition: callbacks_shared.gsc:699
‪CodeCallback_CallServerScriptOnLevel
‪function CodeCallback_CallServerScriptOnLevel(label, param)
Definition: callbacks_shared.gsc:972
‪callback_void
‪function callback_void()
Definition: callbacks_shared.gsc:1090
‪remove_on_ai_spawned
‪function remove_on_ai_spawned(func, obj)
Definition: callbacks_shared.gsc:474
‪on_spawned
‪function on_spawned(func, obj)
Definition: callbacks_shared.gsc:189
‪on_ai_killed
‪function on_ai_killed(func, obj)
Definition: callbacks_shared.gsc:331
‪name
‪class GroundFx name
‪CodeCallback_GlassSmash
‪function CodeCallback_GlassSmash(pos, dir)
Definition: callbacks_shared.gsc:1044
‪CodeCallback_LaunchSideMission
‪function CodeCallback_LaunchSideMission(str_mapname, str_gametype, int_list_index, int_lighting)
Definition: callbacks_shared.gsc:986
‪CodeCallback_VehicleDamage
‪function CodeCallback_VehicleDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, weapon, vPoint, vDir, sHitLoc, vDamageOrigin, timeOffset, damageFromUnderneath, modelIndex, partName, vSurfaceNormal)
Definition: callbacks_shared.gsc:835
‪CodeCallback_ActorSpawned
‪function CodeCallback_ActorSpawned(spawner)
Definition: callbacks_shared.gsc:777
‪killedCustomTraversalListener
‪function killedCustomTraversalListener()
Definition: callbacks_shared.gsc:867
‪on_connecting
‪function on_connecting(func, obj)
Definition: callbacks_shared.gsc:146
‪on_finalize_initialization
‪function on_finalize_initialization(func, obj)
Definition: callbacks_shared.gsc:108
‪CodeCallback_FadeBlackscreen
‪function CodeCallback_FadeBlackscreen(duration, blendTime)
Definition: callbacks_shared.gsc:999
‪WAIT_SERVER_FRAME
‪#define WAIT_SERVER_FRAME
Definition: shared.gsh:265
‪CodeCallback_Decoration
‪function CodeCallback_Decoration(name)
Definition: callbacks_shared.gsc:1063