Madwayz
Участник
- Сообщения
- 88
- Реакции
- 0
Это аим плагин. Если граната хоть немного надамажит противника, то противник взрывается и пишет, что взрыв произошёл в голову. Как это убрать и отключить убийство HE ваншотом?
/* Plugin Template generated by Pawn Studio */
#include <sourcemod>
#include <sdkhooks>
#include <cstrike>
public Plugin:myinfo =
{
name = "Admin Aim",
author = "DarkGL",
description = "Admin Aim",
version = "1.0",
url = "http://darkgl.pl"
}
new bool:aimOn[ 33 ];
public OnPluginStart(){
RegAdminCmd("aim", aimMenu , ADMFLAG_BAN , "Admin Aim Menu" );
}
public bool:OnClientConnect(client, String:rejectmsg[], maxlen){
aimOn[ client ] = false;
return true;
}
public OnClientDisconnect( client ){
aimOn[ client ] = false;
SDKUnhook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}
public OnClientPutInServer(client){
SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}
public Action:aimMenu( client, args ){
createMenu( client );
return Plugin_Handled;
}
public createMenu( client ){
new Handle:menuHandle = CreateMenu( MenuHandler );
SetMenuTitle( menuHandle, "Admin Aim Menu" );
for( new iPlayer = 1 ; iPlayer <= MaxClients ; iPlayer++ ){
if( !IsClientConnected( iPlayer ) ){
continue;
}
new String:szName[ 64 ];
GetClientName( iPlayer , szName , sizeof( szName ) );
new String:szPlayer[ 128 ],
String:szDisplay[ 128 ];
Format( szPlayer , sizeof( szPlayer ) , "%d" , iPlayer );
Format( szDisplay , sizeof( szDisplay ) , "%s: %s" , szName , aimOn[ iPlayer ] ? "On":"Off" );
AddMenuItem( menuHandle , szPlayer , szDisplay );
}
DisplayMenu( menuHandle, client, MENU_TIME_FOREVER );
}
public MenuHandler(Handle:menu, MenuAction:action, param1, param2){
if (action == MenuAction_Select){
new String: szInfo[32];
GetMenuItem( menu, param2, szInfo, sizeof( szInfo ) - 1 );
new iPlayer = StringToInt( szInfo );
if( !IsClientInGame( iPlayer ) ){
return;
}
aimOn[ iPlayer ] = !aimOn[ iPlayer ];
CloseHandle(menu);
createMenu( param1 );
}
else if (action == MenuAction_End){
CloseHandle(menu);
}
}
public Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &damage, int &damagetype, int &weapon, float damageForce[3], float damagePosition[3], int damagecustom){
if( !IsClientValid( victim ) || !IsClientValid( attacker ) ){
return Plugin_Continue;
}
if( aimOn[ attacker ] ){
damagetype = CS_DMG_HEADSHOT;
damage = float(GetClientHealth(victim) + GetClientArmor(victim));
return Plugin_Changed;
}
return Plugin_Continue;
}
stock bool IsClientValid(int client)
{
if(client > 0 && client <= MaxClients && IsClientInGame(client))
return true;
return false;
}
#include <sourcemod>
#include <sdkhooks>
#include <cstrike>
public Plugin:myinfo =
{
name = "Admin Aim",
author = "DarkGL",
description = "Admin Aim",
version = "1.0",
url = "http://darkgl.pl"
}
new bool:aimOn[ 33 ];
public OnPluginStart(){
RegAdminCmd("aim", aimMenu , ADMFLAG_BAN , "Admin Aim Menu" );
}
public bool:OnClientConnect(client, String:rejectmsg[], maxlen){
aimOn[ client ] = false;
return true;
}
public OnClientDisconnect( client ){
aimOn[ client ] = false;
SDKUnhook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}
public OnClientPutInServer(client){
SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}
public Action:aimMenu( client, args ){
createMenu( client );
return Plugin_Handled;
}
public createMenu( client ){
new Handle:menuHandle = CreateMenu( MenuHandler );
SetMenuTitle( menuHandle, "Admin Aim Menu" );
for( new iPlayer = 1 ; iPlayer <= MaxClients ; iPlayer++ ){
if( !IsClientConnected( iPlayer ) ){
continue;
}
new String:szName[ 64 ];
GetClientName( iPlayer , szName , sizeof( szName ) );
new String:szPlayer[ 128 ],
String:szDisplay[ 128 ];
Format( szPlayer , sizeof( szPlayer ) , "%d" , iPlayer );
Format( szDisplay , sizeof( szDisplay ) , "%s: %s" , szName , aimOn[ iPlayer ] ? "On":"Off" );
AddMenuItem( menuHandle , szPlayer , szDisplay );
}
DisplayMenu( menuHandle, client, MENU_TIME_FOREVER );
}
public MenuHandler(Handle:menu, MenuAction:action, param1, param2){
if (action == MenuAction_Select){
new String: szInfo[32];
GetMenuItem( menu, param2, szInfo, sizeof( szInfo ) - 1 );
new iPlayer = StringToInt( szInfo );
if( !IsClientInGame( iPlayer ) ){
return;
}
aimOn[ iPlayer ] = !aimOn[ iPlayer ];
CloseHandle(menu);
createMenu( param1 );
}
else if (action == MenuAction_End){
CloseHandle(menu);
}
}
public Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &damage, int &damagetype, int &weapon, float damageForce[3], float damagePosition[3], int damagecustom){
if( !IsClientValid( victim ) || !IsClientValid( attacker ) ){
return Plugin_Continue;
}
if( aimOn[ attacker ] ){
damagetype = CS_DMG_HEADSHOT;
damage = float(GetClientHealth(victim) + GetClientArmor(victim));
return Plugin_Changed;
}
return Plugin_Continue;
}
stock bool IsClientValid(int client)
{
if(client > 0 && client <= MaxClients && IsClientInGame(client))
return true;
return false;
}