Хотелось, чтобы она по взрослому взрывалась
Плагин умножает урон Взрывной гранаты!
- Код: Выделить всё
/*
==========================================================================================
*** He Damage Multiplier ***
==========================================================================================
### Квары ###
amx_hemulti 1.0(Стандартный урон) Квар отвечающий за урон гранаты
==========================================================================================
### Модули ###
Engine Необходим
Fun Необходим
==========================================================================================
### Changelog ###
1.0 Release
1.1 Kill message fixed
1.2 Little suicide fix
*/
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <engine>
#include <csx>
#include <cstrike>
#define PLUGINNAME "He damage Multiplier"
#define VERSION "1.2"
#define AUTHOR "Nightscream & edit : yas17sin"
#define MAX_CZ_LENGHT 32
#define MSG_TYPE_ALONE MSG_ONE // default: (uncommented)
//new g_iMsgScoreInfo, g_iMsgDeathMsg
#define SetPlayerBit(%1,%2) ( %1 |= ( 1 << ( %2 & 31 ) ) )
#define ClearPlayerBit(%1,%2) ( %1 &= ~( 1 << ( %2 & 31 ) ) )
#define CheckPlayerBit(%1,%2) ( %1 & ( 1 << ( %2 & 31 ) ) )
new g_iCvar_ColorHe;
new g_iCvar_TrailStatus;
new g_iSpriteLine;
new g_iSpriteArrow;
new g_iConnectedUsers;
new g_iDeadUsers;
new g_iMaxPlayers;
public plugin_precache()
{
g_iSpriteArrow = precache_model("sprites/arrow1.spr");
g_iSpriteLine = precache_model("sprites/smoke.spr");
}
public plugin_init() {
register_plugin( PLUGINNAME, VERSION, AUTHOR );
g_iCvar_TrailStatus = register_cvar("amx_grentrail_status", "1");
g_iCvar_ColorHe = register_cvar("amx_grentrail_color_he", "255063000");
register_cvar( "amx_hemulti", "6.00" );
register_event( "Damage", "hedmg", "be" );
// register_clcmd("say /he", "give_hegrnade")
//g_iMsgScoreInfo = get_user_msgid( "ScoreInfo" )
//g_iMsgDeathMsg = get_user_msgid( "DeathMsg" )
register_event("ResetHUD", "Event_ResetHUD", "be");
register_event("Health", "Event_Health", "bd");
g_iMaxPlayers = clamp(get_maxplayers(), 1, 32);
}
public hedmg( id ) {
new victim_id = id;
if( !is_user_connected( victim_id ) ) return PLUGIN_CONTINUE
new dmg_take = read_data( 2 );
new dmgtype = read_data( 3 );
new Float:multiplier = get_cvar_float( "amx_hemulti" );
new Float:damage = dmg_take * multiplier;
new health = get_user_health( victim_id );
new iWeapID, attacker_id = get_user_attacker( victim_id, iWeapID );
if( !is_user_connected( attacker_id ) || !is_user_alive( victim_id ) ) {
return PLUGIN_HANDLED
}
if( iWeapID == CSW_HEGRENADE ) {
if( floatround(damage) >= health ) {
if( victim_id == attacker_id ) {
return PLUGIN_CONTINUE
}else{
log_kill( attacker_id, victim_id, "grenade", 0 );
}
return PLUGIN_CONTINUE
}else {
if( victim_id == attacker_id ) return PLUGIN_CONTINUE
fakedamage( victim_id, "weapon_grenade", damage, dmgtype );
}
}
return PLUGIN_CONTINUE
}
stock log_kill(killer, victim, weapon[],headshot) {
user_silentkill( victim );
message_begin( MSG_ALL, get_user_msgid( "DeathMsg" ), {0,0,0}, 0 );
write_byte( killer );
write_byte( victim );
write_byte( headshot );
write_string( weapon );
message_end();
new kfrags = get_user_frags( killer );
set_user_frags( killer, kfrags++ );
new vfrags = get_user_frags( victim );
set_user_frags( victim, vfrags++ );
return PLUGIN_CONTINUE
}
/*
public give_hegrnade(id)
{
if(!is_user_alive(id) )
return;
give_item(id, "weapon_hegrenade");
}
*/
public client_connect(iPlrId)
{
ClearPlayerBit(g_iConnectedUsers, iPlrId);
ClearPlayerBit(g_iDeadUsers, iPlrId);
}
public client_putinserver(iPlrId)
{
if( !is_user_bot(iPlrId) )
{
SetPlayerBit(g_iConnectedUsers, iPlrId);
if( is_user_alive(iPlrId) )
ClearPlayerBit(g_iDeadUsers, iPlrId);
else
SetPlayerBit(g_iDeadUsers, iPlrId);
}
}
public client_disconnect(iPlrId)
{
ClearPlayerBit(g_iConnectedUsers, iPlrId);
ClearPlayerBit(g_iDeadUsers, iPlrId);
}
public Event_ResetHUD(iPlrId)
{
if( CheckPlayerBit(g_iConnectedUsers, iPlrId) )
{
if( is_user_alive(iPlrId) )
ClearPlayerBit(g_iDeadUsers, iPlrId);
else
SetPlayerBit(g_iDeadUsers, iPlrId);
}
}
public Event_Health(iPlrId)
{
if( CheckPlayerBit(g_iConnectedUsers, iPlrId) )
{
if( is_user_alive(iPlrId) )
ClearPlayerBit(g_iDeadUsers, iPlrId);
else
SetPlayerBit(g_iDeadUsers, iPlrId);
}
}
public plugin_unpause()
{
g_iConnectedUsers = 0;
g_iDeadUsers = 0;
for( new iPlrId=1; iPlrId<=g_iMaxPlayers; iPlrId++ )
{
if( is_user_connected(iPlrId) )
{
if( !is_user_bot(iPlrId) )
{
SetPlayerBit(g_iConnectedUsers, iPlrId);
if( !is_user_alive(iPlrId) )
SetPlayerBit(g_iDeadUsers, iPlrId);
}
}
}
}
public grenade_throw(iPlrId, iGrenId, iWeaponType)
{
new iTemp;
switch( iWeaponType )
{
case CSW_HEGRENADE: iTemp = get_pcvar_num(g_iCvar_ColorHe);
default: return;
}
new iRed = iTemp/1000000;
iTemp %= 1000000;
new iGreen = iTemp/1000;
new iBlue = iTemp%1000;
switch( clamp(get_pcvar_num(g_iCvar_TrailStatus), 0, 3) )
{
case 1:
{
new CsTeams:iOwnerTeam = cs_get_user_team(iPlrId);
for( new iPlayer=1; iPlayer<=g_iMaxPlayers; iPlayer++ )
{
if( CheckPlayerBit(g_iConnectedUsers, iPlayer) )
{
if( CheckPlayerBit(g_iDeadUsers, iPlayer) || cs_get_user_team(iPlayer)==iOwnerTeam )
{
message_begin(MSG_TYPE_ALONE, SVC_TEMPENTITY, _, iPlayer);
write_byte(TE_BEAMFOLLOW);
write_short(iGrenId);
write_short(g_iSpriteArrow);
write_byte(15);
write_byte(7);
write_byte(iRed);
write_byte(iGreen);
write_byte(iBlue);
write_byte(191);
message_end();
if( iTemp )
{
message_begin(MSG_TYPE_ALONE, SVC_TEMPENTITY, _, iPlayer);
write_byte(TE_BEAMFOLLOW);
write_short(iGrenId);
write_short(g_iSpriteLine);
write_byte(15);
write_byte(1);
switch( iOwnerTeam )
{
case CS_TEAM_T:
{
write_byte(255);
write_byte(0);
write_byte(0);
}
case CS_TEAM_CT:
{
write_byte(0);
write_byte(0);
write_byte(255);
}
default:
{
write_byte(127);
write_byte(127);
write_byte(127);
}
}
write_byte(191);
message_end();
}
}
}
}
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang2067\\ f0\\ fs16 \n\\ par }
*/