g_Frames_CreateWAD(nil, 'FRAMES_PUNCH_BERSERK_DN', GameWAD+':WEAPONS\PUNCHB_DN', 64, 64, 4, False);
g_Sound_CreateWADEx('SOUND_GAME_TELEPORT', GameWAD+':SOUNDS\TELEPORT');
g_Sound_CreateWADEx('SOUND_GAME_NOTELEPORT', GameWAD+':SOUNDS\NOTELEPORT');
+ g_Sound_CreateWADEx('SOUND_GAME_SECRET', GameWAD+':SOUNDS\SECRET');
g_Sound_CreateWADEx('SOUND_GAME_DOOROPEN', GameWAD+':SOUNDS\DOOROPEN');
g_Sound_CreateWADEx('SOUND_GAME_DOORCLOSE', GameWAD+':SOUNDS\DOORCLOSE');
g_Sound_CreateWADEx('SOUND_GAME_BULK1', GameWAD+':SOUNDS\BULK1');
g_Frames_DeleteByName('FRAMES_PUNCH_BERSERK_DN');
g_Sound_Delete('SOUND_GAME_TELEPORT');
g_Sound_Delete('SOUND_GAME_NOTELEPORT');
+ g_Sound_Delete('SOUND_GAME_SECRET');
g_Sound_Delete('SOUND_GAME_DOOROPEN');
g_Sound_Delete('SOUND_GAME_DOORCLOSE');
g_Sound_Delete('SOUND_GAME_BULK1');
I_PLAYER_NAME,
I_PLAYER_CHTEAM_RED,
I_PLAYER_CHTEAM_BLUE,
+ I_PLAYER_SECRET,
I_PLAYER_SPECT,
I_PLAYER_SPECT1,
'%s ïåðåøåë â Êðàñíóþ êîìàíäó.'),
('PLAYER CHTEAM BLUE', '%s is now on Blue.',
'%s ïåðåøåë â Ñèíþþ êîìàíäó.'),
+ ('PLAYER SECRET', '%s found a secret!',
+ '%s íàø¸ë ñåêðåò!'),
('PLAYER SPECT', 'Spectating',
'Íàáëþäåíèå'),
e_log, e_msg, ENet, Classes, MAPDEF{$IFDEF USE_MINIUPNPC}, miniupnpc;{$ELSE};{$ENDIF}
const
- NET_PROTOCOL_VER = 178;
+ NET_PROTOCOL_VER = 179;
NET_MAXCLIENTS = 24;
NET_CHANS = 11;
NET_EV_LMS_DRAW = 16;
NET_EV_KILLCOMBO = 17;
NET_EV_PLAYER_TOUCH = 18;
+ NET_EV_SECRET = 19;
NET_VE_STARTED = 1;
NET_VE_PASSED = 2;
pl.Touch();
end;
+ NET_EV_SECRET:
+ begin
+ pl := g_Player_Get(EvNum);
+ if pl <> nil then
+ begin
+ g_Console_Add(Format(_lc[I_PLAYER_SECRET], [pl.Name]), True);
+ g_Sound_PlayEx('SOUND_GAME_SECRET');
+ end;
+ end;
+
end;
end;
procedure TPlayer.GetSecret();
begin
+ if (self = gPlayer1) or (self = gPlayer2) then
+ begin
+ g_Console_Add(Format(_lc[I_PLAYER_SECRET], [FName]), True);
+ g_Sound_PlayEx('SOUND_GAME_SECRET');
+ end;
Inc(FSecrets);
end;
Result := True;
if gLMSRespawn = LMS_RESPAWN_NONE then
begin
- g_Player_Get(ActivateUID).GetSecret();
+ p := g_Player_Get(ActivateUID);
+ p.GetSecret();
Inc(gCoopSecretsFound);
- if g_Game_IsNet then MH_SEND_GameStats();
+ if g_Game_IsNet then
+ begin
+ MH_SEND_GameStats();
+ if p.FClientID >= 0 then
+ MH_SEND_GameEvent(NET_EV_SECRET, p.UID, '', p.FClientID);
+ end;
end;
end;