HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4.  
  5.  
  6. #define PLUGIN "C4 felrobbanto"
  7. #define VERSION "0.2"
  8. #define AUTHOR "Alka & regalis & Geri094 forditotta"
  9.  
  10.  
  11. new Float:g_C4Origin[3];
  12. new g_C4Entity;
  13. new shake;
  14. new bool:is_planted;
  15. new bomb_sprite;
  16.  
  17.  
  18. public plugin_init()
  19. {
  20. register_plugin(PLUGIN, VERSION, AUTHOR);
  21. register_cvar(PLUGIN, VERSION, FCVAR_SERVER);
  22. register_concmd("amx_boom","make_fake", ADMIN_BAN,"<A C4 robban!! BOooOM!>");
  23.  
  24. register_logevent("bombisplanted", 3, "2=Planted_The_Bomb");
  25. register_forward(FM_SetModel, "SetModel");
  26.  
  27. shake = get_user_msgid("ScreenShake");
  28. bomb_sprite = get_user_msgid("StatusIcon");
  29. }
  30.  
  31. public SetModel(entity, const model[])
  32. {
  33. if(equal(model, "models/w_c4.mdl"))
  34. {
  35. g_C4Entity = entity;
  36. return FMRES_IGNORED;
  37. }
  38. return FMRES_IGNORED;
  39. }
  40.  
  41. public bombisplanted()
  42. {
  43. is_planted = true;
  44. new player[80], pname[32];
  45. read_logargv(0, player, 79);
  46. parse_loguser(player, pname, 31);
  47. new id = get_user_index(pname);
  48.  
  49. pev(id, pev_origin, g_C4Origin);
  50. }
  51.  
  52. public make_fake(id,level,cid)
  53. {
  54. if(!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED;
  55.  
  56. new name[32], ctime[64];
  57. get_user_name(id,name,31);
  58. get_time("%m/%d/%Y - %H:%M:%S", ctime, 63);
  59.  
  60. log_amx("Command : 'amx_forceboom' frissitve %s a'ltal. - [%s]",name,ctime);
  61.  
  62. if(pev_valid(g_C4Entity) && is_planted)
  63. {
  64. show_sprite();
  65. set_pdata_float(g_C4Entity, 100, 0.0);
  66. player_shake(g_C4Origin, 1<<14 , 1000.0);
  67. is_planted = false;
  68. }
  69. return PLUGIN_HANDLED;
  70. }
  71.  
  72. player_shake(Float:origin[3], shpower, Float:range)
  73. {
  74. new Float:pOrigin[3];
  75. new Float:dist;
  76. new players[32], player, num;
  77. get_players(players, num, "ach");
  78. for(new i; i < num; i++)
  79. {
  80. player = players[i];
  81. pev(player,pev_origin,pOrigin);
  82. dist = get_distance_f(origin,pOrigin);
  83.  
  84. if(dist <= range)
  85. {
  86. message_begin(MSG_ONE,shake,{0,0,0},player);
  87. write_short(shpower);
  88. write_short(shpower);
  89. write_short(shpower);
  90. message_end();
  91. }
  92. }
  93. }
  94.  
  95. show_sprite()
  96. {
  97. new players[32], player, num;
  98. get_players(players, num, "ach");
  99. for(new i; i < num; i++)
  100. {
  101. player = players[i];
  102.  
  103. message_begin(MSG_ONE,bomb_sprite,{0,0,0},player);
  104. write_byte(2);
  105. write_string("bombticking");
  106. write_byte(0);
  107. write_byte(0);
  108. write_byte(255);
  109. message_end();
  110. }
  111. }