AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [HELP] Change The Damage of the shot (https://forums.alliedmods.net/showthread.php?t=273538)

Old.School 10-20-2015 20:46

[HELP] Change The Damage of the shot
 
i wanna make the damage of shot terrorist to another terrorist 50 and thnx for helping
PHP Code:

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

#pragma semicolon 1

#define SetBit(%0,%1) ((%0) |= (1 << (%1)))
#define ClearBit(%0,%1) ((%0) &= ~(1 << (%1)))
#define IsSetBit(%0,%1) ((%0) & (1 << (%1)))
#define InvertBit(%0,%1) ((%0) ^= (1 << (%1)))
#define IsNotSetBit(%0,%1) (~(%0) & (1 << (%1)))

#define MsgId_CurWeapon 66
#define MsgId_WeaponList 78
#define MsgId_ScreenFade 98

#define jbe_is_user_valid(%0) (%0 && %0 <= g_iMaxPlayers)

native jbe_register_day_mode(szLang[32], iBlockiTime);
native jbe_get_user_team(id);

new 
g_iDayModeBirthdayV2g_iMaxPlayersg_pCakeIndexg_pDecalIndex[4], g_iFriendlyFire,
g_iFakeMetaSetModelHamHook:g_iHamHookForwards[14];
new const 
g_szHamHookEntityBlock[][] =
{
    
"func_vehicle"// Управляемая машина
    
"func_tracktrain"// Управляемый поезд
    
"func_tank"// Управляемая пушка
    
"game_player_hurt"// При активации наносит игроку повреждения
    
"func_recharge"// Увеличение запаса бронижелета
    
"func_healthcharger"// Увеличение процентов здоровья
    
"game_player_equip"// Выдаёт оружие
    
"player_weaponstrip"// Забирает всё оружие
    
"trigger_hurt"// Наносит игроку повреждения
    
"trigger_gravity"// Устанавливает игроку силу гравитации
    
"armoury_entity"// Объект лежащий на карте, оружия, броня или гранаты
    
"weaponbox"// Оружие выброшенное игроком
    
"weapon_shield" // Щит
};

public 
plugin_precache()
{
    
engfunc(EngFunc_PrecacheModel"models/jb_engine/days_mode/birthday/v_cake.mdl");
    
engfunc(EngFunc_PrecacheModel"models/jb_engine/days_mode/birthday/p_cake.mdl");
    
engfunc(EngFunc_PrecacheModel"models/jb_engine/days_mode/birthday/w_cake.mdl");
    
g_pCakeIndex engfunc(EngFunc_PrecacheModel"sprites/jb_engine/cake_explosion.spr");
    
engfunc(EngFunc_PrecacheSound"jb_engine/days_mode/birthday/cake_explosion.wav");
    
engfunc(EngFunc_PrecacheGeneric"sound/jb_engine/days_mode/birthday/ambience.mp3");
    
engfunc(EngFunc_PrecacheGeneric"sprites/jb_engine/wpn_cake.spr");
    
engfunc(EngFunc_PrecacheGeneric"sprites/jbe_dm_wpn_cake.txt");
    
g_pDecalIndex[0] = engfunc(EngFunc_DecalIndex,"{blood1");
    
g_pDecalIndex[1] = engfunc(EngFunc_DecalIndex,"{blood2");
    
g_pDecalIndex[2] = engfunc(EngFunc_DecalIndex,"{blood3");
    
g_pDecalIndex[3] = engfunc(EngFunc_DecalIndex,"{blood4");
}

public 
plugin_init()
{
    
register_plugin("[JBE_DM] Birth Day""1.1""[B]l@k ~ [R]Eed");
    new 
i;
    for(
0<= 7i++) DisableHamForward(g_iHamHookForwards[i] = RegisterHam(Ham_Useg_szHamHookEntityBlock[i], "HamHook_EntityBlock"0));
    for(
8<= 12i++) DisableHamForward(g_iHamHookForwards[i] = RegisterHam(Ham_Touchg_szHamHookEntityBlock[i], "HamHook_EntityBlock"0));
    
DisableHamForward(g_iHamHookForwards[13] = RegisterHam(Ham_Touch"grenade""HamHook_Touch_Grenade_Post"1));
    
register_clcmd("jbe_dm_wpn_cake""ClCmd_WpnCake");
    
g_iDayModeBirthdayV2 jbe_register_day_mode("JBE_DAY_MODE_BIRTHDAYV2"0187);
    
g_iMaxPlayers get_maxplayers();
}

public 
HamHook_EntityBlock() return HAM_SUPERCEDE;
public 
HamHook_Touch_Grenade_Post(iTouchediToucher)
{
    if(!
pev_valid(iTouched)) return;
    new 
Float:vecOrigin[3];
    
pev(iTouchedpev_originvecOrigin);
    if(
pev_valid(iToucher) == 2)
    {
        new 
iOwner pev(iTouchedpev_owner);
        if(
jbe_is_user_valid(iToucher))
        {
            if(
jbe_get_user_team(iToucher) == 1ExecuteHamB(Ham_TakeDamageiToucheriOwneriOwner50.0DMG_SONIC);
            
UTIL_ScreenFade(iToucher, (1<<12), (1<<12), 0241010250);
        }
        else 
ExecuteHamB(Ham_TakeDamageiToucheriOwneriOwner50.0DMG_SONIC);
    }
    else 
CREATE_WORLDDECAL(vecOriging_pDecalIndex[random_num(03)]);
    
CREATE_SPRITE(vecOriging_pCakeIndex15255);
    
emit_sound(iTouchedCHAN_AUTO"jb_engine/days_mode/birthday/cake_explosion.wav"VOL_NORMATTN_NORM0PITCH_NORM);
    
set_pev(iTouchedpev_flagspev(iTouchedpev_flags) | FL_KILLME);
}

public 
ClCmd_WpnCake(id)
{
    
engclient_cmd(id"weapon_smokegrenade");
    return 
PLUGIN_HANDLED;
}

public 
jbe_day_mode_start(iDayModeiAdmin)
{
    if(
iDayMode == g_iDayModeBirthdayV2)
    {
        for(new 
1<= g_iMaxPlayersi++)
        {
            if(!
is_user_alive(i)) continue;
            switch(
jbe_get_user_team(i))
            {
                case 
1:
                {
                    
fm_strip_user_weapons(i);
                    
set_pev(ipev_gravity0.5);
                    
fm_give_item(i"weapon_smokegrenade");
                    
fm_set_user_bpammo(iCSW_SMOKEGRENADE200);
                    
message_begin(MSG_ONEMsgId_WeaponList_i);
                    
write_string("jbe_dm_wpn_cake");
                    
write_byte(13);
                    
write_byte(1);
                    
write_byte(-1);
                    
write_byte(-1);
                    
write_byte(3);
                    
write_byte(3);
                    
write_byte(9);
                    
write_byte(24);
                    
message_end();
                    static 
iszViewModeliszWeaponModel;
                    if(
iszViewModel || (iszViewModel engfunc(EngFunc_AllocString"models/jb_engine/days_mode/birthday/v_cake.mdl"))) set_pev_string(ipev_viewmodel2iszViewModel);
                    if(
iszWeaponModel || (iszWeaponModel engfunc(EngFunc_AllocString"models/jb_engine/days_mode/birthday/p_cake.mdl"))) set_pev_string(ipev_weaponmodel2iszWeaponModel);
                }
                case 
2:
                {
                    
fm_strip_user_weapons(i);
                    
fm_give_item(i"weapon_smokegrenade");
                    
fm_set_user_bpammo(iCSW_SMOKEGRENADE200);
                    
message_begin(MSG_ONEMsgId_WeaponList_i);
                    
write_string("jbe_dm_wpn_cake");
                    
write_byte(13);
                    
write_byte(1);
                    
write_byte(-1);
                    
write_byte(-1);
                    
write_byte(3);
                    
write_byte(3);
                    
write_byte(9);
                    
write_byte(24);
                    
message_end();
                    static 
iszViewModeliszWeaponModel;
                    if(
iszViewModel || (iszViewModel engfunc(EngFunc_AllocString"models/jb_engine/days_mode/birthday/v_cake.mdl"))) set_pev_string(ipev_viewmodel2iszViewModel);
                    if(
iszWeaponModel || (iszWeaponModel engfunc(EngFunc_AllocString"models/jb_engine/days_mode/birthday/p_cake.mdl"))) set_pev_string(ipev_weaponmodel2iszWeaponModel);
                }
            }
        }
        
g_iFriendlyFire 1;
        
client_cmd(0"mp3 play sound/jb_engine/days_mode/birthday/ambience.mp3");
        for(new 
isizeof(g_iHamHookForwards); i++) EnableHamForward(g_iHamHookForwards[i]);
        
g_iFakeMetaSetModel register_forward(FM_SetModel"FakeMeta_SetModel_Post"1);
    }
}

public 
FakeMeta_SetModel_Post(iEntity, const szModel[])
{
    if(
szModel[7] == 'w' && szModel[8] == '_' && szModel[9] == 's' && szModel[10] == 'm')
    {
        
engfunc(EngFunc_SetModeliEntity"models/jb_engine/days_mode/birthday/w_cake.mdl");
        new 
Float:vecVelocity[3];
        
pev(iEntitypev_velocityvecVelocity);
        
xs_vec_mul_scalar(vecVelocity1.5vecVelocity);
        
set_pev(iEntitypev_velocityvecVelocity);
        
engfunc(EngFunc_SetSizeiEntityFloat:{-5.0, -5.0, -5.0}, Float:{5.05.05.0});
    }
}

public 
jbe_day_mode_ended(iDayModeiWinTeam)
{
    if(
iDayMode == g_iDayModeBirthdayV2)
    {
        
client_cmd(0"mp3 stop");
        
g_iFriendlyFire 1;
        new 
iiEntityiOwner;
        for(
0sizeof(g_iHamHookForwards); i++) DisableHamForward(g_iHamHookForwards[i]);
        
unregister_forward(FM_SetModelg_iFakeMetaSetModel1);
        for(
1<= g_iMaxPlayersi++)
        {
            if(
is_user_alive(i) && jbe_get_user_team(i) == && jbe_get_user_team(i) == 1)
            {
                if(
iWinTeamfm_strip_user_weapons(i1);
                else 
ExecuteHamB(Ham_Killedii0);
            }
        }
        while((
iEntity engfunc(EngFunc_FindEntityByStringiEntity"classname""grenade")))
        {
            if(!
pev_valid(iEntity)) continue;
            
iOwner pev(iEntitypev_owner);
            if(
jbe_is_user_valid(iOwner)) set_pev(iEntitypev_flagspev(iEntitypev_flags) | FL_KILLME);
        }
    }
}

stock CREATE_SPRITE(Float:vecOrigin[3], pSptiteiWidthiBrightness)
{
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYvecOrigin0);
    
write_byte(TE_SPRITE);
    
engfunc(EngFunc_WriteCoordvecOrigin[0]);
    
engfunc(EngFunc_WriteCoordvecOrigin[1]);
    
engfunc(EngFunc_WriteCoordvecOrigin[2]);
    
write_short(pSptite);
    
write_byte(iWidth);
    
write_byte(iBrightness);
    
message_end();
}

stock CREATE_WORLDDECAL(Float:vecOrigin[3], pDecal)
{
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
    
write_byte(TE_WORLDDECAL);
    
engfunc(EngFunc_WriteCoordvecOrigin[0]);
    
engfunc(EngFunc_WriteCoordvecOrigin[1]);
    
engfunc(EngFunc_WriteCoordvecOrigin[2]);
    
write_byte(pDecal);
    
message_end();
}

stock UTIL_ScreenFade(idiDurationiHoldTimeiFlagsiRediGreeniBlueiAlpha)
{
    
message_begin(MSG_ONE_UNRELIABLEMsgId_ScreenFade_id);
    
write_short(iDuration);
    
write_short(iHoldTime);
    
write_short(iFlags);
    
write_byte(iRed);
    
write_byte(iGreen);
    
write_byte(iBlue);
    
write_byte(iAlpha);
    
message_end();
}

stock fm_give_item(id, const szItem[])
{
    new 
iEntity engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocStringszItem));
    if(!
pev_valid(iEntity)) return 0;
    new 
Float:vecOrigin[3];
    
pev(idpev_originvecOrigin);
    
set_pev(iEntitypev_originvecOrigin);
    
set_pev(iEntitypev_spawnflagspev(iEntitypev_spawnflags) | SF_NORESPAWN);
    
dllfunc(DLLFunc_SpawniEntity);
    new 
iSolid pev(iEntitypev_solid);
    
dllfunc(DLLFunc_TouchiEntityid);
    if(
pev(iEntitypev_solid) == iSolid)
    {
        
engfunc(EngFunc_RemoveEntityiEntity);
        return -
1;
    }
    return 
iEntity;
}

stock fm_strip_user_weapons(idiType 0)
{
    new 
iEntity;
    static 
iszWeaponStrip 0;
    if(
iszWeaponStrip || (iszWeaponStrip engfunc(EngFunc_AllocString"player_weaponstrip"))) iEntity engfunc(EngFunc_CreateNamedEntityiszWeaponStrip);
    if(!
pev_valid(iEntity)) return 0;
    if(
iType && get_user_weapon(id) != CSW_KNIFE)
    {
        
engclient_cmd(id"weapon_knife");
        
message_begin(MSG_ONE_UNRELIABLEMsgId_CurWeapon_id);
        
write_byte(1);
        
write_byte(CSW_KNIFE);
        
write_byte(0);
        
message_end();
    }
    
dllfunc(DLLFunc_SpawniEntity);
    
dllfunc(DLLFunc_UseiEntityid);
    
engfunc(EngFunc_RemoveEntityiEntity);
    return 
1;
}

stock fm_set_user_bpammo(idiWeaponiAmount)
{
    new 
iOffset;
    switch(
iWeapon)
    {
        case 
CSW_AWPiOffset 377// ammo_338magnum
        
case CSW_SCOUTCSW_AK47CSW_G3SG1iOffset 378// ammo_762nato
        
case CSW_M249iOffset 379// ammo_556natobox
        
case CSW_FAMASCSW_M4A1CSW_AUGCSW_SG550CSW_GALICSW_SG552iOffset 380// ammo_556nato
        
case CSW_M3CSW_XM1014iOffset 381// ammo_buckshot
        
case CSW_USPCSW_UMP45CSW_MAC10iOffset 382// ammo_45acp
        
case CSW_FIVESEVENCSW_P90iOffset 383// ammo_57mm
        
case CSW_DEAGLEiOffset 384// ammo_50ae
        
case CSW_P228iOffset 385// ammo_357sig
        
case CSW_GLOCK18CSW_MP5NAVYCSW_TMPCSW_ELITEiOffset 386// ammo_9mm
        
case CSW_FLASHBANGiOffset 387;
        case 
CSW_HEGRENADEiOffset 388;
        case 
CSW_SMOKEGRENADEiOffset 389;
        case 
CSW_C4iOffset 390;
        default: return;
    }
    
set_pdata_int(idiOffsetiAmount);



hellmonja 10-23-2015 10:50

Re: [HELP] Change The Damage of the shot
 
maybe you can put the damage in a variable, like "dmg" then make an if statement like:

Code:

if(player == terrorist)
    dmg = 50
else
    dmg = 20

or something like that?...

Old.School 10-24-2015 13:43

Re: [HELP] Change The Damage of the shot
 
can you drop the full code

Bugsy 10-24-2015 14:21

Re: [HELP] Change The Damage of the shot
 
Hook Ham_TakeDamage pre, use SetHamParamFloat( 4 , damage + 50.0 ) and return HAM_HANDLED.

Note that this does not mean an additional -50 to victim HP, it only increases the damage inflicted by 50. This value then gets offset by armor.

You can try hooking TakeDamage post, and adjust the victims hp there.


All times are GMT -4. The time now is 22:14.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.