HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <fakemeta>
  3. #include <hamsandwich>
  4.  
  5. #define VERSION "0.1.0"
  6. #define PLUGIN "Killer's view"
  7.  
  8. #define m_flNextSpecButtonTime 100
  9. #define m_fDeadTime 354
  10.  
  11. new gmsgScreenFade
  12. new g_iMaxPlayers
  13. new g_pCvarBlockChangeViewTime, g_pCvarKv3rdPerson, g_pCvarKvFade
  14.  
  15. public plugin_init()
  16. {
  17. register_plugin(PLUGIN, VERSION, "ConnorMcLeod")
  18.  
  19. gmsgScreenFade = get_user_msgid("ScreenFade")
  20.  
  21. g_iMaxPlayers = get_maxplayers()
  22.  
  23. g_pCvarBlockChangeViewTime = register_cvar("kv_buttonsdelay", "2.0")
  24. g_pCvarKv3rdPerson = register_cvar("kv_3rdview", "0")
  25. g_pCvarKvFade = register_cvar("kv_fade", "030000000180")
  26.  
  27. RegisterHam(Ham_Killed, "player", "OnCBasePlayer_Killed_Post", true)
  28. }
  29.  
  30. public OnCBasePlayer_Killed_Post( id, killer )
  31. {
  32. if( !killer || killer > g_iMaxPlayers || id == killer )
  33. {
  34. return
  35. }
  36.  
  37. set_pev(id, pev_deadflag, DEAD_DEAD)
  38. new Float:flTime = get_gametime()
  39. set_pdata_float(id, m_fDeadTime, flTime - 3.1)
  40. ExecuteHam(Ham_Think, id)
  41.  
  42. engclient_cmd(id, "specmode", get_pcvar_num(g_pCvarKv3rdPerson) ? "1" : "4")
  43.  
  44. set_pdata_float(id, m_flNextSpecButtonTime, flTime + get_pcvar_float(g_pCvarBlockChangeViewTime))
  45.  
  46. set_pev(id, pev_deadflag, DEAD_DYING)
  47. set_pev(id, pev_nextthink, flTime + 0.1)
  48. set_pdata_float(id, m_fDeadTime, flTime + 9999.0)
  49.  
  50. new szFade[13], l = get_pcvar_string(g_pCvarKvFade, szFade, charsmax(szFade))
  51. if( l == 12 )
  52. {
  53. new r, g, b, a
  54.  
  55. r = (szFade[0] - '0') * 100 + (szFade[1] - '0') * 10 + (szFade[2] - '0')
  56. g = (szFade[3] - '0') * 100 + (szFade[4] - '0') * 10 + (szFade[5] - '0')
  57. b = (szFade[6] - '0') * 100 + (szFade[7] - '0') * 10 + (szFade[8] - '0')
  58. a = (szFade[9] - '0') * 100 + (szFade[10] - '0') * 10 + (szFade[11] - '0')
  59.  
  60. message_begin(MSG_ONE_UNRELIABLE, gmsgScreenFade, .player=id)
  61. write_short( 2<<12 )
  62. write_short( 1<<11 )
  63. write_short( 0 )
  64. write_byte( r )
  65. write_byte( g )
  66. write_byte( b )
  67. write_byte( a )
  68. message_end()
  69. }
  70. }