Welcome Soldier.



[APORTE] DAMAGE MANAGER

GabsHp Sin conexión
Lord Gabs
#1
Les traigo este pequeño plugin como aporte, es algo sencillo pero creo que a más de alguno le ha de servir.

-Damage Manager-

El plugin consiste en interruptores independientes para cada arma, dicho interruptor funciona para encender / apagar el daño de algún arma en específico

Contiene:
  • Menús separados para cada tipo de arma. (Pistolas, Escopetas, SMG, Rifles, MachineGuns);

  • Opción de activar / desactivar el daño de cada arma en específico.

  • Opción para activar / desactivar el daño en general (todo tipo de daño natural);

  • Opción para activar / desactivar el daño por caída.

  • Opción para activar / desactivar el daño por granadas.

  • Opción para activar / desactivar el daño de todas las armas en general.
:whatever:

AMXMODX-ES LinkDAMAGE MANAGER (amxmodx-es.com)

Código PHP:
/* Sublime AMXX Editor v3.0.0-beta */

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

//DAMAGE MANAGER by GabsHp

//NO MODIFICAR NINGUN ENUM / CONSTANTE / ARRAY
//SALUDOS PA LOS PIBES DEL DISCORD DE AMX-ES Y PAL BORRACHO DEL GOZE

new bool:g_AllowWpnDamage true
new 
bool:g_AllowFallDamage true
new 
bool:g_IgnoreAllDamage false
new 
bool:g_AllowNadeDamage true;


enum 
_:WPN_GETTYPE
{
    
//NOMBRE DEL ARMA, SOLO COMO GUIA, NINGUNA FUNCION
    
WPN_NAME[20],
    
//EL TIPO DE ARMA, PARA DETECTAR SI ES PISTOLA, ESCOPETA, SMG ETC...
    
WPN_TYPE,
    
//INDEX DE NUMERACION EN SU RESPECTIVO MENU;
    
WPN_NUM
}
new const 
szWpnType[][WPN_GETTYPE] =
{
    {
"NULL"00},
    {
"P228"12},
    {
"NULL"00},
    {
"SCOUT"40},
    {
"HEGRENADE"00},
    {
"XM1014"20},
    {
"C4"00},
    {
"MAC10"30},
    {
"AUG [CT]"48},
    {
"SMOKEGRENADE"0},
    {
"DUAL BERETTAS"15},
    {
"FIVE SEVEN"13},
    {
"UMP45"34},
    {
"GS550 [CT]"49},
    {
"GALIL [T]"42},
    {
"FAMAS [CT]"46},
    {
"USP"11},
    {
"GLOCK18"10},
    {
"AWP"41},
    {
"MP5"31},
    {
"M249"50},
    {
"M3"21},
    {
"M4A1 [CT]"47},
    {
"TPM"33},
    {
"G3SG1 [T]"45},
    {
"FLASHBANG"00},
    {
"DEAGLE"14},
    {
"KRIEG552 [T]"44},
    {
"AK47 [T]"43},
    {
"KNIFE"00},
    {
"P90"32}

}

enum 
_:WPN_INFO
{
    
//NOMBRE DEL ARMA MOSTRADO EN EL MENU
    
WPN_NAME[20],
    
//BOOLEANO QUE DETECTA SI ESTA ON / OFF EL DAÑO DE CADA ARMA
    
bool:WPN_BOOL
};

new 
szPistolWpn[][WPN_INFO] =
{
    {
"GLOCK18"true},
    {
"USP"true},
    {
"P228"true},
    {
"FIVE SEVEN"true},
    {
"DEAGLE"true},
    {
"DUAL BERETTAS"true}
}

new 
szShotgunWpn[][WPN_INFO] =
{
    {
"XM1014"true},
    {
"M3"true}
}

new 
szSmgWpn[][WPN_INFO] =
{
    {
"MAC10"true},
    {
"MP5"true},
    {
"P90"true},
    {
"TMP"true},
    {
"UMP45"true}
}

new 
szRiflesWpn[][WPN_INFO] =
{
    {
"SCOUT"true},
    {
"AWP"true},
    {
"GALIL [T]"true},
    {
"AK47 [T]"true},
    {
"KRIEG552 [T]"true},
    {
"G3SG1 [T]"true},
    {
"FAMAS [CT]"true},
    {
"M4A1 [CT]"true},
    {
"AUG [CT]"true},
    {
"GS550 [CT]"true}
}

new 
szMachineWpn[][WPN_INFO] =
{
    {
"M249"true}
}


public 
plugin_init()
{
    
register_plugin("Damage Manager""1.0""GabsHp");
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage");
    
register_clcmd("say /damage""MainMenu");
}


public 
MainMenu(id)
{
    if(!
get_user_flags(id) && ADMIN_CVAR) return PLUGIN_HANDLED;
    static 
iMenu;
    
iMenu menu_create("\r[\yDamage Manager\r] \wMenú Principal""MainHandler");
    
menu_additem(iMenu"\yTipos de Daño");
    
menu_addblank(iMenu0);
    
menu_additem(iMenu"[\yPistolas\w]");
    
menu_additem(iMenu"[\yEscopetas\w]");
    
menu_additem(iMenu"[\ySMG\w]");
    
menu_additem(iMenu"[\yRifles\w]");
    
menu_addblank(iMenu0);
    
menu_additem(iMenu"[\yMachine Guns\w]");
    
menu_addblank(iMenu1);
    
menu_setprop(iMenuMPROP_EXITNAME"Salir");
    
menu_display(idiMenu);
    return 
PLUGIN_HANDLED;

}

public 
MainHandler(idiMenuitem)
{
    switch(
item)
    {
        case 
0ManageDamage(id);
        case 
1PistolMenu(id);
        case 
2ShotgunMenu(id);
        case 
3SmgMenu(id);
        case 
4RiflesMenu(id);
        case 
5MachineMenu(id);
    }
    
menu_destroy(iMenu);
    return 
PLUGIN_HANDLED
}

public 
ManageDamage(id)
{
    static 
iMenuszText[4][64];
    
formatex(szText[0], charsmax(szText[]), "\y[\wDaño por Granada\y] [\r%s\y]"g_AllowNadeDamage "ON" "OFF");
    
formatex(szText[1], charsmax(szText[]), "\y[\wDaño por Armas\y] [\r%s\y]"g_AllowWpnDamage "ON" "OFF");
    
formatex(szText[2], charsmax(szText[]), "\y[\wDaño por Caida\y] [\r%s\y]"g_AllowFallDamage "ON" "OFF");
    
formatex(szText[3], charsmax(szText[]), "\y[\wIgnorar todo daño\y] [\r%s\y]"g_IgnoreAllDamage "ON" "OFF");
    
iMenu menu_create("Activar / Desactivar Daño""ManageHandler");
    
menu_additem(iMenuszText[0]);
    
menu_additem(iMenuszText[1]);
    
menu_additem(iMenuszText[2]);
    
menu_addblank(iMenu0);
    
menu_addtext(iMenu"Esta opción desactiva todo tipo de daño natural"0);
    
menu_additem(iMenuszText[3]);
    
menu_addblank(iMenu1);
    
menu_addblank(iMenu1);
    
menu_addblank(iMenu1);
    
menu_setprop(iMenuMPROP_EXITNAME"Salir")
    
menu_display(idiMenu);
    return 
PLUGIN_HANDLED;
}

public 
ManageHandler(idiMenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(iMenu);
        
MainMenu(id);
        return 
PLUGIN_HANDLED;
    }
    switch(
item)
    {
        case 
0:
        {
            switch(
g_AllowNadeDamage)
            {
                case 
true:
                {
                    
g_AllowNadeDamage false;
                    
client_print_color(idprint_team_default"^4[WM]^1 Daño por ^4GRANADA^1: ^4DESACTIVADO");
                }
                case 
false:
                {
                    
g_AllowNadeDamage true;
                    
client_print_color(idprint_team_default"^4[WM]^1 Daño por ^4GRANADA^1: ^4ACTIVADO");
                }
            }
        }
        case 
1:
        {
            switch(
g_AllowWpnDamage)
            {
                case 
true:
                {
                    
g_AllowWpnDamage false;
                    
client_print_color(idprint_team_default"^4[WM]^1 Daño por ^4ARMAS^1: ^4DESACTIVADO");
                }
                case 
false:
                {
                    
g_AllowWpnDamage true;
                    
client_print_color(idprint_team_default"^4[WM]^1 Daño por ^4ARMAS^1: ^4ACTIVADO");
                }
            }
        }
        case 
2:
        {
            switch(
g_AllowFallDamage)
            {
                case 
true:
                {
                    
g_AllowFallDamage false;
                    
client_print_color(idprint_team_default"^4[WM]^1 Daño por ^4CAIDA^1: ^4DESACTIVADO");
                }
                case 
false:
                {
                    
g_AllowFallDamage true;
                    
client_print_color(idprint_team_default"^4[WM]^1 Daño por ^4CAIDA^1: ^4ACTIVADO");
                }
            }
        }
        case 
3:
        {
            switch(
g_IgnoreAllDamage)
            {
                case 
true:
                {
                    
g_IgnoreAllDamage false;
                    
client_print_color(idprint_team_default"^4[WM]^1 Ignorar ^4TODO TIPO DE DAÑO^1: ^4DESACTIVADO");
                }
                case 
false:
                {
                    
g_IgnoreAllDamage true;
                    
client_print_color(idprint_team_default"^4[WM]^1 Ignorar ^4TODO TIPO DE DAÑO^1: ^4ACTIVADO");
                }
            }
        }
    }
    
menu_destroy(iMenu);
    
ManageDamage(id);
    return 
PLUGIN_HANDLED;
}

public 
PistolMenu(id)
{
    static 
iMenuszText[256], bool:iBool;
    
iMenu menu_create("[Pistol] Toggler""PistolHandler");
    for(new 
isizeof szPistolWpni++)
    {
        
iBool szPistolWpn[i][WPN_BOOL];
        
formatex(szTextcharsmax(szText), "\y[\w%s\y] [\r%s\y]"szPistolWpn[i][WPN_NAME], iBool "ON" "OFF");
        
menu_additem(iMenuszText);
    }
    
menu_setprop(iMenuMPROP_EXITNAME"Salir");
    
menu_display(idiMenu);
    return 
PLUGIN_HANDLED;
}

public 
PistolHandler(idiMenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(iMenu);
        
MainMenu(id);
        return 
PLUGIN_HANDLED;
    }
    switch(
szPistolWpn[item][WPN_BOOL])
    {
        case 
true:
        {
            
szPistolWpn[item][WPN_BOOL] = false;
            
client_print_color(idprint_team_default"^4[WM]^1 Daño ^3%s^1: ^4DESACTIVADO"szPistolWpn[item][WPN_NAME]);
        }
        case 
false:
        {
            
szPistolWpn[item][WPN_BOOL] = true;
            
client_print_color(idprint_team_default"^4[WM]^1 Daño ^3%s^1: ^4ACTIVADO"szPistolWpn[item][WPN_NAME]);
        }
    }
    
menu_destroy(iMenu);
    
PistolMenu(id);
    return 
PLUGIN_HANDLED
}

public 
ShotgunMenu(id)
{
    static 
iMenuszText[256], bool:iBool;
    
iMenu menu_create("[Shotgun] Toggler""ShotgunHandler");
    for(new 
isizeof szShotgunWpni++)
    {
        
iBool szShotgunWpn[i][WPN_BOOL];
        
formatex(szTextcharsmax(szText), "\y[\w%s\y] [\r%s\y]"szShotgunWpn[i][WPN_NAME], iBool "ON" "OFF");
        
menu_additem(iMenuszText);
    }
    
menu_setprop(iMenuMPROP_EXITNAME"Salir");
    
menu_display(idiMenu);
    return 
PLUGIN_HANDLED;
}

public 
ShotgunHandler(idiMenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(iMenu);
        
MainMenu(id);
        return 
PLUGIN_HANDLED;
    }
    switch(
szShotgunWpn[item][WPN_BOOL])
    {
        case 
true:
        {
            
szShotgunWpn[item][WPN_BOOL] = false;
            
client_print_color(idprint_team_default"^4[WM]^1 Daño ^3%s^1: ^4DESACTIVADO"szShotgunWpn[item][WPN_NAME]);
        }
        case 
false:
        {
            
szShotgunWpn[item][WPN_BOOL] = true;
            
client_print_color(idprint_team_default"^4[WM]^1 Daño ^3%s^1: ^4ACTIVADO"szShotgunWpn[item][WPN_NAME]);
        }
    }
    
menu_destroy(iMenu);
    
ShotgunMenu(id);
    return 
PLUGIN_HANDLED
}

public 
SmgMenu(id)
{
    static 
iMenuszText[256], bool:iBool;
    
iMenu menu_create("[SMG] Toggler""SmgHandler");
    for(new 
isizeof szSmgWpni++)
    {
        
iBool szSmgWpn[i][WPN_BOOL];
        
formatex(szTextcharsmax(szText), "\y[\w%s\y] [\r%s\y]"szSmgWpn[i][WPN_NAME], iBool "ON" "OFF");
        
menu_additem(iMenuszText);
    }
    
menu_setprop(iMenuMPROP_EXITNAME"Salir");
    
menu_display(idiMenu);
    return 
PLUGIN_HANDLED;
}

public 
SmgHandler(idiMenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(iMenu);
        
MainMenu(id);
        return 
PLUGIN_HANDLED;
    }
    switch(
szSmgWpn[item][WPN_BOOL])
    {
        case 
true:
        {
            
szSmgWpn[item][WPN_BOOL] = false;
            
client_print_color(idprint_team_default"^4[WM]^1 Daño ^3%s^1: ^4DESACTIVADO"szSmgWpn[item][WPN_NAME]);
        }
        case 
false:
        {
            
szSmgWpn[item][WPN_BOOL] = true;
            
client_print_color(idprint_team_default"^4[WM]^1 Daño ^3%s^1: ^4ACTIVADO"szSmgWpn[item][WPN_NAME]);
        }
    }
    
menu_destroy(iMenu);
    
SmgMenu(id);
    return 
PLUGIN_HANDLED
}

public 
RiflesMenu(id)
{
    static 
iMenuszText[512], bool:iBool;
    
iMenu menu_create("[RIFLES] Toggler""RiflesHandler");
    for(new 
isizeof szRiflesWpni++)
    {
        
iBool szRiflesWpn[i][WPN_BOOL];
        
formatex(szTextcharsmax(szText), "\y[\w%s\y] [\r%s\y]"szRiflesWpn[i][WPN_NAME], iBool "ON" "OFF");
        
menu_additem(iMenuszText);
    }
    
menu_setprop(iMenuMPROP_BACKNAME"Atras")
    
menu_setprop(iMenuMPROP_NEXTNAME"Siguiente");
    
menu_setprop(iMenuMPROP_EXITNAME"Salir");
    
menu_display(idiMenu);
    return 
PLUGIN_HANDLED;
}

public 
RiflesHandler(idiMenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(iMenu);
        
MainMenu(id);
        return 
PLUGIN_HANDLED;
    }
    switch(
szRiflesWpn[item][WPN_BOOL])
    {
        case 
true:
        {
            
szRiflesWpn[item][WPN_BOOL] = false;
            
client_print_color(idprint_team_default"^4[WM]^1 Daño ^3%s^1: ^4DESACTIVADO"szRiflesWpn[item][WPN_NAME]);
        }
        case 
false:
        {
            
szRiflesWpn[item][WPN_BOOL] = true;
            
client_print_color(idprint_team_default"^4[WM]^1 Daño ^3%s^1: ^4ACTIVADO"szRiflesWpn[item][WPN_NAME]);
        }
    }
    
menu_destroy(iMenu);
    
RiflesMenu(id);
    return 
PLUGIN_HANDLED
}

public 
MachineMenu(id)
{
    static 
iMenuszText[256], bool:iBool;
    
iMenu menu_create("[MACHINEGUN] Toggler""MachineHandler");
    for(new 
isizeof szMachineWpni++)
    {
        
iBool szMachineWpn[i][WPN_BOOL];
        
formatex(szTextcharsmax(szText), "\y[\w%s\y] [\r%s\y]"szMachineWpn[i][WPN_NAME], iBool "ON" "OFF");
        
menu_additem(iMenuszText);
    }
    
menu_setprop(iMenuMPROP_EXITNAME"Salir");
    
menu_display(idiMenu);
    return 
PLUGIN_HANDLED;
}

public 
MachineHandler(idiMenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(iMenu);
        
MainMenu(id);
        return 
PLUGIN_HANDLED;
    }
    switch(
szMachineWpn[item][WPN_BOOL])
    {
        case 
true:
        {
            
szMachineWpn[item][WPN_BOOL] = false;
            
client_print_color(idprint_team_default"^4[WM]^1 Daño ^3%s^1: ^4DESACTIVADO"szMachineWpn[item][WPN_NAME]);
        }
        case 
false:
        {
            
szMachineWpn[item][WPN_BOOL] = true;
            
client_print_color(idprint_team_default"^4[WM]^1 Daño ^3%s^1: ^4ACTIVADO"szMachineWpn[item][WPN_NAME]);
        }
    }
    
menu_destroy(iMenu);
    
MachineMenu(id);
    return 
PLUGIN_HANDLED
}

public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamagebits)
{
    if(!
is_user_alive(victim)) return HAM_IGNORED;
    //static szWeapon[3];
    
if(g_IgnoreAllDamage)
    {
        
SetHamParamFloat(4Float:0.0)
        return 
HAM_SUPERCEDE;
    }

    if(
damagebits == DMG_BULLET)
    {
        if(!
g_AllowWpnDamage)
        {
            
SetHamParamFloat(4Float:0.0);
            return 
HAM_SUPERCEDE;
        }
    }

    if(
damagebits == DMG_FALL)
    {
        if(!
g_AllowFallDamage)
        {
            
SetHamParamFloat(4Float:0.0);
            return 
HAM_SUPERCEDE;
        }
    }

    if(
attacker && get_user_weapon(attacker) & CSW_HEGRENADE)
    {
        if(!
g_AllowNadeDamage)
        {
            
SetHamParamFloat(4Float:0.0);
            return 
HAM_SUPERCEDE;
        }
    }
    
    
if(!attacker)
    {
        return 
HAM_IGNORED;
    }
    new 
iWpnID;
    static 
iBool;
    
iWpnID get_user_weapon(attacker);
    
iBool getWpnBool(iWpnID);
    if(!
iBool && szWpnType[iWpnID][WPN_TYPE] != 0)
    {
        
SetHamParamFloat(4Float:0.0);
        return 
HAM_SUPERCEDE;
    }
    return 
HAM_IGNORED;
}


public 
getWpnBool(iWpnID)
{
    static 
iWpnTypebool:iBooliWpnNum;
    
iWpnType szWpnType[iWpnID][WPN_TYPE];
    
iWpnNum szWpnType[iWpnID][WPN_NUM];
    switch(
iWpnType)
    {
        case 
1:
        {
            
iBool szPistolWpn[iWpnNum][WPN_BOOL];
            return 
iBool;
        }
        case 
2:
        {
            
iBool szShotgunWpn[iWpnNum][WPN_BOOL];
            return 
iBool;
        }
        case 
3:
        {
            
iBool szSmgWpn[iWpnNum][WPN_BOOL];
            return 
iBool;
        }
        case 
4:
        {
            
iBool szRiflesWpn[iWpnNum][WPN_BOOL];
            return 
iBool;
        }
        case 
5:
        {
            
iBool szMachineWpn[iWpnNum][WPN_BOOL];
            return 
iBool;
        }
    }
    
iBool true;
    return 
iBool;


[Imagen: 0mkce1Q.png]

[Imagen: wZLaM8b.png]

[Imagen: AXx5YqS.png]
Responder





Usuarios navegando en este tema:
1 invitado(s)



Sobre M X E M E X I C O

Comunidad MxE © 2020 - La mejorar comunidad de Counter Strike 1.6 .