1 #using scripts\codescripts\struct;
3 #using scripts\shared\system_shared;
5 #insert scripts\shared\shared.gsh;
18 level.actor_bookmark_kill_times_count = killTimesCount;
19 level.actor_bookmark_kill_times_msec = killTimeMsec;
20 level.actor_bookmark_kill_times_delay = killTimeDelay;
22 level.actorbookmarkParamsInitialized =
true;
25 function bookmark( type, time, mainClientEnt, otherClientEnt, eventPriority, inflictorEnt, overrideEntityCamera, actorEnt )
31 inflictorBirthTime = 0;
32 actorEntNum = undefined;
33 scoreEventPriority = 0;
35 if ( isdefined( mainClientEnt ) )
37 mainClientNum = mainClientEnt getEntityNumber();
40 if ( isdefined( otherClientEnt ) )
42 otherClientNum = otherClientEnt getEntityNumber();
45 if ( isdefined( eventPriority ) )
47 scoreEventPriority = eventPriority;
50 if ( isdefined( inflictorEnt ) )
52 inflictorEntNum = inflictorEnt getEntityNumber();
53 inflictorEntType = inflictorEnt getEntityType();
55 if ( isdefined( inflictorEnt.birthTime ) )
57 inflictorBirthTime = inflictorEnt.birthTime;
61 if ( !isdefined( overrideEntityCamera ) )
63 overrideEntityCamera =
false;
66 if ( isdefined( actorEnt ) )
68 actorEntNum = actorEnt getEntityNumber();
71 addDemoBookmark( type, time, mainClientNum, otherClientNum, scoreEventPriority, inflictorEntNum, inflictorEntType, inflictorBirthTime, overrideEntityCamera, actorEntNum );
78 scoreEventPriority = 0;
81 inflictorBirthTime = 0;
82 overrideEntityCamera =
false;
83 actorEntNum = undefined;
85 if ( isdefined( winningTeamIndex ) )
87 mainClientNum = winningTeamIndex;
90 if ( isdefined( losingTeamIndex ) )
92 otherClientNum = losingTeamIndex;
96 addDemoBookmark( type, gettime(), mainClientNum, otherClientNum, scoreEventPriority, inflictorEntNum, inflictorEntType, inflictorBirthTime, overrideEntityCamera, actorEntNum );
101 if ( !isDefined( level.actorbookmarkParamsInitialized ) )
106 if ( !IsDefined(
self.actor_bookmark_kill_times ) )
108 self.actor_bookmark_kill_times = [];
109 self.ignore_actor_kill_times = 0;
112 for ( i = 0; i < level.actor_bookmark_kill_times_count; i++ )
114 self.actor_bookmark_kill_times[i] = 0;
121 if ( !isDefined( level.actorbookmarkParamsInitialized ) )
125 if ( now <=
self.ignore_actor_kill_times )
131 oldest_time = now + 1;
133 for ( i = 0; i < level.actor_bookmark_kill_times_count; i++ )
135 if ( !
self.actor_bookmark_kill_times[i] )
140 else if ( oldest_time >
self.actor_bookmark_kill_times[i] )
143 oldest_time =
self.actor_bookmark_kill_times[i];
147 self.actor_bookmark_kill_times[oldest_index] = now;
155 if ( !isDefined( level.actorbookmarkParamsInitialized ) )
165 oldest_allowed = now - level.actor_bookmark_kill_times_msec;
166 players = GetPlayers();
167 for ( player_index = 0; player_index < players.size; player_index++ )
169 player = players[player_index];
171 for ( time_index = 0; time_index < level.actor_bookmark_kill_times_count; time_index++ )
173 if ( !IsDefined( player.actor_bookmark_kill_times ) || !player.actor_bookmark_kill_times[time_index] )
177 else if ( oldest_allowed > player.actor_bookmark_kill_times[time_index] )
179 player.actor_bookmark_kill_times[time_index] = 0;
184 if ( time_index >= level.actor_bookmark_kill_times_count )
186 bookmark(
"actor_kill", gettime(), player );
188 player.ignore_actor_kill_times = now + level.actor_bookmark_kill_times_delay;