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:
<?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", 0, 0},
{
"P228", 1, 2},
{
"NULL", 0, 0},
{
"SCOUT", 4, 0},
{
"HEGRENADE", 0, 0},
{
"XM1014", 2, 0},
{
"C4", 0, 0},
{
"MAC10", 3, 0},
{
"AUG [CT]", 4, 8},
{
"SMOKEGRENADE", 0},
{
"DUAL BERETTAS", 1, 5},
{
"FIVE SEVEN", 1, 3},
{
"UMP45", 3, 4},
{
"GS550 [CT]", 4, 9},
{
"GALIL [T]", 4, 2},
{
"FAMAS [CT]", 4, 6},
{
"USP", 1, 1},
{
"GLOCK18", 1, 0},
{
"AWP", 4, 1},
{
"MP5", 3, 1},
{
"M249", 5, 0},
{
"M3", 2, 1},
{
"M4A1 [CT]", 4, 7},
{
"TPM", 3, 3},
{
"G3SG1 [T]", 4, 5},
{
"FLASHBANG", 0, 0},
{
"DEAGLE", 1, 4},
{
"KRIEG552 [T]", 4, 4},
{
"AK47 [T]", 4, 3},
{
"KNIFE", 0, 0},
{
"P90", 3, 2}

}

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(iMenu, 0);
menu_additem(iMenu, "[\yPistolas\w]");
menu_additem(iMenu, "[\yEscopetas\w]");
menu_additem(iMenu, "[\ySMG\w]");
menu_additem(iMenu, "[\yRifles\w]");
menu_addblank(iMenu, 0);
menu_additem(iMenu, "[\yMachine Guns\w]");
menu_addblank(iMenu, 1);
menu_setprop(iMenu, MPROP_EXITNAME, "Salir");
menu_display(id, iMenu);
return
PLUGIN_HANDLED;

}

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

public
ManageDamage(id)
{
static
iMenu, szText[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(iMenu, szText[0]);
menu_additem(iMenu, szText[1]);
menu_additem(iMenu, szText[2]);
menu_addblank(iMenu, 0);
menu_addtext(iMenu, "Esta opción desactiva todo tipo de daño natural", 0);
menu_additem(iMenu, szText[3]);
menu_addblank(iMenu, 1);
menu_addblank(iMenu, 1);
menu_addblank(iMenu, 1);
menu_setprop(iMenu, MPROP_EXITNAME, "Salir")
menu_display(id, iMenu);
return
PLUGIN_HANDLED;
}

public
ManageHandler(id, iMenu, item)
{
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(id, print_team_default, "^4[WM]^1 Daño por ^4GRANADA^1: ^4DESACTIVADO");
}
case
false:
{
g_AllowNadeDamage = true;
client_print_color(id, print_team_default, "^4[WM]^1 Daño por ^4GRANADA^1: ^4ACTIVADO");
}
}
}
case
1:
{
switch(
g_AllowWpnDamage)
{
case
true:
{
g_AllowWpnDamage = false;
client_print_color(id, print_team_default, "^4[WM]^1 Daño por ^4ARMAS^1: ^4DESACTIVADO");
}
case
false:
{
g_AllowWpnDamage = true;
client_print_color(id, print_team_default, "^4[WM]^1 Daño por ^4ARMAS^1: ^4ACTIVADO");
}
}
}
case
2:
{
switch(
g_AllowFallDamage)
{
case
true:
{
g_AllowFallDamage = false;
client_print_color(id, print_team_default, "^4[WM]^1 Daño por ^4CAIDA^1: ^4DESACTIVADO");
}
case
false:
{
g_AllowFallDamage = true;
client_print_color(id, print_team_default, "^4[WM]^1 Daño por ^4CAIDA^1: ^4ACTIVADO");
}
}
}
case
3:
{
switch(
g_IgnoreAllDamage)
{
case
true:
{
g_IgnoreAllDamage = false;
client_print_color(id, print_team_default, "^4[WM]^1 Ignorar ^4TODO TIPO DE DAÑO^1: ^4DESACTIVADO");
}
case
false:
{
g_IgnoreAllDamage = true;
client_print_color(id, print_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
iMenu, szText[256], bool:iBool;
iMenu = menu_create("[Pistol] Toggler", "PistolHandler");
for(new
i; i < sizeof szPistolWpn; i++)
{
iBool = szPistolWpn[i][WPN_BOOL];
formatex(szText, charsmax(szText), "\y[\w%s\y] [\r%s\y]", szPistolWpn[i][WPN_NAME], iBool ? "ON" : "OFF");
menu_additem(iMenu, szText);
}
menu_setprop(iMenu, MPROP_EXITNAME, "Salir");
menu_display(id, iMenu);
return
PLUGIN_HANDLED;
}

public
PistolHandler(id, iMenu, item)
{
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(id, print_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(id, print_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
iMenu, szText[256], bool:iBool;
iMenu = menu_create("[Shotgun] Toggler", "ShotgunHandler");
for(new
i; i < sizeof szShotgunWpn; i++)
{
iBool = szShotgunWpn[i][WPN_BOOL];
formatex(szText, charsmax(szText), "\y[\w%s\y] [\r%s\y]", szShotgunWpn[i][WPN_NAME], iBool ? "ON" : "OFF");
menu_additem(iMenu, szText);
}
menu_setprop(iMenu, MPROP_EXITNAME, "Salir");
menu_display(id, iMenu);
return
PLUGIN_HANDLED;
}

public
ShotgunHandler(id, iMenu, item)
{
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(id, print_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(id, print_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
iMenu, szText[256], bool:iBool;
iMenu = menu_create("[SMG] Toggler", "SmgHandler");
for(new
i; i < sizeof szSmgWpn; i++)
{
iBool = szSmgWpn[i][WPN_BOOL];
formatex(szText, charsmax(szText), "\y[\w%s\y] [\r%s\y]", szSmgWpn[i][WPN_NAME], iBool ? "ON" : "OFF");
menu_additem(iMenu, szText);
}
menu_setprop(iMenu, MPROP_EXITNAME, "Salir");
menu_display(id, iMenu);
return
PLUGIN_HANDLED;
}

public
SmgHandler(id, iMenu, item)
{
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(id, print_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(id, print_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
iMenu, szText[512], bool:iBool;
iMenu = menu_create("[RIFLES] Toggler", "RiflesHandler");
for(new
i; i < sizeof szRiflesWpn; i++)
{
iBool = szRiflesWpn[i][WPN_BOOL];
formatex(szText, charsmax(szText), "\y[\w%s\y] [\r%s\y]", szRiflesWpn[i][WPN_NAME], iBool ? "ON" : "OFF");
menu_additem(iMenu, szText);
}
menu_setprop(iMenu, MPROP_BACKNAME, "Atras")
menu_setprop(iMenu, MPROP_NEXTNAME, "Siguiente");
menu_setprop(iMenu, MPROP_EXITNAME, "Salir");
menu_display(id, iMenu);
return
PLUGIN_HANDLED;
}

public
RiflesHandler(id, iMenu, item)
{
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(id, print_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(id, print_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
iMenu, szText[256], bool:iBool;
iMenu = menu_create("[MACHINEGUN] Toggler", "MachineHandler");
for(new
i; i < sizeof szMachineWpn; i++)
{
iBool = szMachineWpn[i][WPN_BOOL];
formatex(szText, charsmax(szText), "\y[\w%s\y] [\r%s\y]", szMachineWpn[i][WPN_NAME], iBool ? "ON" : "OFF");
menu_additem(iMenu, szText);
}
menu_setprop(iMenu, MPROP_EXITNAME, "Salir");
menu_display(id, iMenu);
return
PLUGIN_HANDLED;
}

public
MachineHandler(id, iMenu, item)
{
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(id, print_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(id, print_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(victim, inflictor, attacker, Float:damage, damagebits)
{
if(!
is_user_alive(victim)) return HAM_IGNORED;
    //static szWeapon[3];
if(g_IgnoreAllDamage)
{
SetHamParamFloat(4, Float:0.0)
return
HAM_SUPERCEDE;
}

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

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

if(
attacker && get_user_weapon(attacker) & CSW_HEGRENADE)
{
if(!
g_AllowNadeDamage)
{
SetHamParamFloat(4, Float: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(4, Float:0.0);
return
HAM_SUPERCEDE;
}
return
HAM_IGNORED;
}


public
getWpnBool(iWpnID)
{
static
iWpnType, bool:iBool, iWpnNum;
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



Mensajes en este tema
DAMAGE MANAGER - por GabsHp - 12-26-2020, 08:20 AM



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 .