AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Please Melp Me About This Plugin !!! (https://forums.alliedmods.net/showthread.php?t=208406)

KiNg Clan 02-13-2013 03:16

Please Melp Me About This Plugin !!!
 
PHP Code:

/*
*    Plugin Original Author: Crock / =)
*
*/
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <xs>
#include <cstrike>
#include <biohazard>
#include <colorchat>
#define ENG_NULLENT        -1
#define EV_INT_WEAPONKEY    EV_INT_impulse
#define WEAPONKEY 33
#define MAX_PLAYERS                32
#define IsValidUser(%1) (1 <= %1 <= g_MaxPlayers)
const USE_STOPPED 0
const OFFSET_ACTIVE_ITEM 373
const OFFSET_WEAPONOWNER 41
const OFFSET_LINUX 5
const OFFSET_LINUX_WEAPONS 4
#define WEAP_LINUX_XTRA_OFF            4
#define m_fKnown                44
#define m_flNextPrimaryAttack             46
#define m_flTimeWeaponIdle            48
#define m_iClip                    51
#define m_fInReload                54
#define PLAYER_LINUX_XTRA_OFF            5
#define m_flNextAttack                83
#define RELOAD_TIME 2.7
#define wId CSW_UMP45
const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
new const 
Fire_snd[] = {"weapons/kingeth.wav"}
new const 
went[] ={"weapon_ump45"}
new const 
GUNSHOT_DECALS[] = { 4142434445 }
new 
ethereal_V_MODEL[64] = "kingeth/v_kingeth.mdl"
new ethereal_P_MODEL[64] = "kingeth/p_kingeth.mdl"
new ethereal_W_MODEL[64] = "kingeth/w_kingeth.mdl"
new cvar_ethereal_hasarcvar_ethereal_mermicvar_ethereal_sarjorcvar_ethereal_fiyat
new g_has_ethereal[33]
new 
g_MaxPlayersg_orig_event_etherealg_clip_ammo[33]
new 
Float:cl_pushangle[MAX_PLAYERS 1][3], m_iBlood[2]
new 
g_ethereal_TmpClip[33]
public 
plugin_init()
{
    
register_plugin("[BIO]: Ethereal Silahi""1.0""EDIT: !KiNg Clan")
    
register_clcmd("say /kingeth""etherealsatinal")
    
register_clcmd("say /eth""etherealsatinal")
    
register_clcmd("say_team /kingeth""etherealsatinal")
    
register_clcmd("say_team /eth""etherealsatinal")
    
register_logevent("TurSonu"2"1=Round_End")
    
RegisterHam(Ham_Spawn"player""OyuncuDogunca")
    
register_event("CurWeapon","CurrentWeapon","be","1=1")
    
RegisterHam(Ham_Item_AddToPlayerwent"fw_ethereal_AddToPlayer")
    
RegisterHam(Ham_Use"func_tank""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tankmortar""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tankrocket""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tanklaser""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Item_Deploywent"fw_Item_Deploy_Post"1)
    
RegisterHam(Ham_Weapon_PrimaryAttackwent"fw_ethereal_PrimaryAttack")
    
RegisterHam(Ham_Weapon_PrimaryAttackwent"fw_ethereal_PrimaryAttack_Post"1)
    
RegisterHam(Ham_Item_PostFramewent"ethereal__ItemPostFrame");
    
RegisterHam(Ham_Weapon_Reloadwent"ethereal__Reload");
    
RegisterHam(Ham_Weapon_Reloadwent"ethereal__Reload_Post"1);
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
register_forward(FM_SetModel"fw_SetModel")
    
register_forward(FM_UpdateClientData"fw_UpdateClientData_Post"1)
    
register_forward(FM_PlaybackEvent"fwPlaybackEvent")
    
cvar_ethereal_hasar register_cvar("bio_ethereal_hasar""2")
    
cvar_ethereal_mermi register_cvar("bio_ethereal_mermi""30")
    
cvar_ethereal_sarjor register_cvar("bio_ethereal_sarjor""100")
    
cvar_ethereal_fiyat register_cvar("bio_ethereal_fiyat""9000")
    
g_MaxPlayers get_maxplayers()
}
public 
plugin_precache()
{
    
precache_model(ethereal_V_MODEL)
    
precache_model(ethereal_P_MODEL)
    
precache_model(ethereal_W_MODEL)
    
precache_sound(Fire_snd)
    
m_iBlood[0] = precache_model("kingeth/kingeth1.spr")
    
m_iBlood[1] = precache_model("kingeth/kingeth2.spr")
    
register_forward(FM_PrecacheEvent"fwPrecacheEvent_Post"1)
}
 
public 
fwPrecacheEvent_Post(type, const name[])
{
    if (
equal("events/ump45.sc"name))
    {
        
g_orig_event_ethereal get_orig_retval()
        return 
FMRES_HANDLED
    
}
    return 
FMRES_IGNORED
}
public 
client_connect(id)
{
    
g_has_ethereal[id] = false
}
public 
client_disconnect(id)
{
    
g_has_ethereal[id] = false
}
public 
fw_SetModel(entitymodel[])
{
    if(!
is_valid_ent(entity))
        return 
FMRES_IGNORED;
    static 
szClassName[33]
    
entity_get_string(entityEV_SZ_classnameszClassNamecharsmax(szClassName))
    if(!
equal(szClassName"weaponbox"))
        return 
FMRES_IGNORED;
    static 
iOwner
    iOwner 
entity_get_edict(entityEV_ENT_owner)
    if(
equal(model"models/w_ump45.mdl"))
    {
        static 
iStoredSVDID
        iStoredSVDID 
find_ent_by_owner(ENG_NULLENTwententity)
        if(!
is_valid_ent(iStoredSVDID))
            return 
FMRES_IGNORED;
        if(
g_has_ethereal[iOwner])
        {
            
entity_set_int(iStoredSVDIDEV_INT_WEAPONKEYWEAPONKEY)
            
g_has_ethereal[iOwner] = false
            entity_set_model
(entityethereal_W_MODEL)
            return 
FMRES_SUPERCEDE;
        }
    }
    return 
FMRES_IGNORED;
}
public 
give_ethereal(id)
{
    
drop_weapons(id1);
    new 
iWep2 give_item(id,went)
    if( 
iWep2 )
    {
    
cs_set_weapon_ammo(iWep2get_pcvar_num(cvar_ethereal_mermi))
    
cs_set_user_bpammo (idwIdget_pcvar_num(cvar_ethereal_sarjor))
    }
    
g_has_ethereal[id] = true;
}
public 
etherealsatinal(iditemid)
{
    if (!
is_user_alive(id))
    {
        
ColorChat(id,NORMAL,"^4[!KiNg Clan]:^1^3Ethereal Silahini^1 ^4Alamabilmek Icin^1 ^3Hayatta Olmaniz Gereklidir!^1")
        return 
PLUGIN_HANDLED
    
}
    new 
para cs_get_user_money(id)
    if (
para >= get_pcvar_num(cvar_ethereal_fiyat))
    {
        
cs_set_user_money(idpara get_pcvar_num(cvar_ethereal_fiyat))
        
give_ethereal(id)
        
ColorChat(id,NORMAL,"^4[!KiNg Clan]:^1^3Ethereal Silahini^1 ^4Satin Aldiniz!^1")
    }
    else
    {
        
ColorChat(id,NORMAL,"^4[!KiNg Clan]:^1^3Ethereal Silahini Almak Icin^1 ^4Yeterli Paraniz Yok^1 ^3Silahin Degeri:^1^4%d^1^3TL^1"get_pcvar_num(cvar_ethereal_fiyat))
    }
    return 
PLUGIN_HANDLED
}
public 
OyuncuDogunca(id)
{
    
g_has_ethereal[id] = false
}
public 
TurSonu(id)
{
    
g_has_ethereal[id] = false
}
public 
fw_ethereal_AddToPlayer(etherealid)
{
    if(!
is_valid_ent(ethereal) || !is_user_connected(id))
        return 
HAM_IGNORED;
    if(
entity_get_int(etherealEV_INT_WEAPONKEY) == WEAPONKEY)
    {
        
g_has_ethereal[id] = true
        entity_set_int
(etherealEV_INT_WEAPONKEY0)
        return 
HAM_HANDLED;
    }
    return 
HAM_IGNORED;
}
public 
fw_UseStationary_Post(entitycalleractivatoruse_type)
{
    if (
use_type == USE_STOPPED && is_user_connected(caller))
        
replace_weapon_models(callerget_user_weapon(caller))
}
public 
fw_Item_Deploy_Post(weapon_ent)
{
    static 
owner
    owner 
fm_cs_get_weapon_ent_owner(weapon_ent)
    static 
weaponid
    weaponid 
cs_get_weapon_id(weapon_ent)
    
replace_weapon_models(ownerweaponid)
    
UTIL_PlayWeaponAnimation(owner,2,2)
}
public 
CurrentWeapon(id)
{
    
replace_weapon_models(idread_data(2))
}
replace_weapon_models(idweaponid)
{
    switch (
weaponid)
    {
        case 
wId:
        {
            if(
g_has_ethereal[id])
            {
                
set_pev(idpev_viewmodel2ethereal_V_MODEL)
                
set_pev(idpev_weaponmodel2ethereal_P_MODEL)
            }
        }
    }
}
public 
fw_UpdateClientData_Post(PlayerSendWeaponsCD_Handle)
{
  if(!
is_user_alive(Player) || (get_user_weapon(Player) != wId) || !g_has_ethereal[Player])
  return 
FMRES_IGNORED
  set_cd
(CD_HandleCD_flNextAttackhalflife_time () + 0.001)
  return 
FMRES_HANDLED
}
public 
fw_ethereal_PrimaryAttack(Weapon)
{
    new 
Player get_pdata_cbase(Weapon414)
    if (!
g_has_ethereal[Player])
        return;
    
pev(Player,pev_punchangle,cl_pushangle[Player])
    
g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
    if(
g_clip_ammo[Player]>0)
    
UTIL_PlayWeaponAnimation(Player5,2)
}
public 
fwPlaybackEvent(flagsinvokereventidFloat:delayFloat:origin[3], Float:angles[3], Float:fparam1Float:fparam2iParam1iParam2bParam1bParam2)
{
    if ((
eventid != g_orig_event_ethereal))
        return 
FMRES_IGNORED
    
if (!(<= invoker <= g_MaxPlayers))
        return 
FMRES_IGNORED
    playback_event
(flags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2)
    return 
FMRES_SUPERCEDE
}
public 
fw_ethereal_PrimaryAttack_Post(Weapon)
{    new 
Player get_pdata_cbase(Weapon414)
    new 
szClipszAmmo
    get_user_weapon
(PlayerszClipszAmmo)
    if(
Player && Player 33)
    {
    if(
g_has_ethereal[Player])
    {
    if(
szClip 0)emit_sound(PlayerCHAN_WEAPONFire_sndVOL_NORMATTN_NORM0PITCH_NORM)
    }
    if(
g_has_ethereal[Player])
    {
        new 
Float:push[3]
        
pev(Player,pev_punchangle,push)
        
xs_vec_sub(push,cl_pushangle[Player],push)
        
xs_vec_mul_scalar(push,0.6,push)
        
xs_vec_add(push,cl_pushangle[Player],push)
        
set_pev(Player,pev_punchangle,push)
        if (!
g_clip_ammo[Player])
            return
        
make_blood_and_bulletholes(Player)
    }
    }
}
public 
fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if ( 
IsValidUserattacker ) && get_user_weapon(attacker) == CSW_UMP45 && g_has_ethereal[attacker] )
    {
        
SetHamParamFloat(4damage get_pcvar_floatcvar_ethereal_hasar ) )
    }
}
stock fm_cs_get_current_weapon_ent(id)
{
    return 
get_pdata_cbase(idOFFSET_ACTIVE_ITEMOFFSET_LINUX);
}
stock fm_cs_get_weapon_ent_owner(ent)
{
    return 
get_pdata_cbase(entOFFSET_WEAPONOWNEROFFSET_LINUX_WEAPONS);
}
stock UTIL_PlayWeaponAnimation(const Player, const Sequence,body)
{
    
set_pev(Playerpev_weaponanimSequence)
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, .player Player)
    
write_byte(Sequence)
    
write_byte(body)//pev(Player, pev_body))
    
message_end()
}
stock make_blood_and_bulletholes(id)
{
    new 
aimOrigin[3], targetbody
    get_user_origin
(idaimOrigin3)
    
get_user_aiming(idtargetbody)
    if(
target && target <= g_MaxPlayers && is_user_zombie(target))
    {
        new 
Float:fStart[3], Float:fEnd[3], Float:fRes[3], Float:fVel[3]
        
pev(idpev_originfStart)
        
velocity_by_aim(id64fVel)
        
fStart[0] = float(aimOrigin[0])
        
fStart[1] = float(aimOrigin[1])
        
fStart[2] = float(aimOrigin[2])
        
fEnd[0] = fStart[0]+fVel[0]
        
fEnd[1] = fStart[1]+fVel[1]
        
fEnd[2] = fStart[2]+fVel[2]
        new 
res
        engfunc
(EngFunc_TraceLinefStartfEnd0targetres)
        
get_tr2(resTR_vecEndPosfRes)
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_BLOODSPRITE)
        
write_coord(floatround(fStart[0]))
        
write_coord(floatround(fStart[1]))
        
write_coord(floatround(fStart[2]))
        
write_shortm_iBlood ])
        
write_shortm_iBlood ] )
        
write_byte(70)
        
write_byte(random_num(1,2))
        
message_end()
    }
    else if(!
is_user_connected(target))
    {
        if(
target)
        {
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
            
write_byte(TE_DECAL)
            
write_coord(aimOrigin[0])
            
write_coord(aimOrigin[1])
            
write_coord(aimOrigin[2])
            
write_byte(GUNSHOT_DECALS[random_num 0sizeof GUNSHOT_DECALS -) ] )
            
write_short(target)
            
message_end()
        }
        else
        {
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
            
write_byte(TE_WORLDDECAL)
            
write_coord(aimOrigin[0])
            
write_coord(aimOrigin[1])
            
write_coord(aimOrigin[2])
            
write_byte(GUNSHOT_DECALS[random_num 0sizeof GUNSHOT_DECALS -) ] )
            
message_end()
        }
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_GUNSHOTDECAL)
        
write_coord(aimOrigin[0])
        
write_coord(aimOrigin[1])
        
write_coord(aimOrigin[2])
        
write_short(id)
        
write_byte(GUNSHOT_DECALS[random_num 0sizeof GUNSHOT_DECALS -) ] )
        
message_end()
        
message_begin(MSG_ALLSVC_TEMPENTITY
        
write_byte(TE_SPARKS)
        
write_coord(aimOrigin[0])
        
write_coord(aimOrigin[1])
        
write_coord(aimOrigin[2])
        
message_end()
        
message_begin(MSG_ALLSVC_TEMPENTITY
        
write_byte(TE_SPARKS)
        
write_coord(aimOrigin[0]+2)
        
write_coord(aimOrigin[1])
        
write_coord(aimOrigin[2])
        
message_end()
        
message_begin(MSG_ALLSVC_TEMPENTITY
        
write_byte(TE_SPARKS)
        
write_coord(aimOrigin[0])
        
write_coord(aimOrigin[1]+2)
        
write_coord(aimOrigin[2])
        
message_end()
        
message_begin(MSG_ALLSVC_TEMPENTITY
        
write_byte(TE_SPARKS)
        
write_coord(aimOrigin[0])
        
write_coord(aimOrigin[1])
        
write_coord(aimOrigin[2]+2)
        
message_end()
 
    }
}
public 
ethereal__ItemPostFrame(weapon_entity) {
    new 
id pev(weapon_entitypev_owner)
    if (!
is_user_connected(id))
        return 
HAM_IGNORED;
    if (!
g_has_ethereal[id])
        return 
HAM_IGNORED;
    new 
Float:flNextAttack get_pdata_float(idm_flNextAttackPLAYER_LINUX_XTRA_OFF)
    new 
iBpAmmo cs_get_user_bpammo(idwId);
    new 
iClip get_pdata_int(weapon_entitym_iClipWEAP_LINUX_XTRA_OFF)
    new 
fInReload get_pdata_int(weapon_entitym_fInReloadWEAP_LINUX_XTRA_OFF)
    if( 
fInReload && flNextAttack <= 0.0 )
    {
        new 
min(get_pcvar_num(cvar_ethereal_mermi) - iClipiBpAmmo)
        
set_pdata_int(weapon_entitym_iClipiClip jWEAP_LINUX_XTRA_OFF)
        
cs_set_user_bpammo(idwIdiBpAmmo-j);
        
set_pdata_int(weapon_entitym_fInReload0WEAP_LINUX_XTRA_OFF)
        
fInReload 0
    
}
    return 
HAM_IGNORED;
}
public 
ethereal__Reload(weapon_entity) {
    new 
id pev(weapon_entitypev_owner)
    if (!
is_user_connected(id))
        return 
HAM_IGNORED;
    if (!
g_has_ethereal[id])
        return 
HAM_IGNORED;
    
g_ethereal_TmpClip[id] = -1;
    new 
iBpAmmo cs_get_user_bpammo(idwId);
    new 
iClip get_pdata_int(weapon_entitym_iClipWEAP_LINUX_XTRA_OFF)
    if (
iBpAmmo <= 0)
        return 
HAM_SUPERCEDE;
    if (
iClip >= get_pcvar_num(cvar_ethereal_mermi))
        return 
HAM_SUPERCEDE;
    
UTIL_PlayWeaponAnimation(id1,2)
    
g_ethereal_TmpClip[id] = iClip;
    return 
HAM_IGNORED;
}
public 
ethereal__Reload_Post(weapon_entity) {
    new 
id pev(weapon_entitypev_owner)
    if (!
is_user_connected(id))
        return 
HAM_IGNORED;
    if (!
g_has_ethereal[id])
        return 
HAM_IGNORED;
    if (
g_ethereal_TmpClip[id] == -1)
        return 
HAM_IGNORED;
    
set_pdata_int(weapon_entitym_iClipg_ethereal_TmpClip[id], WEAP_LINUX_XTRA_OFF)
    
set_pdata_float(weapon_entitym_flTimeWeaponIdleRELOAD_TIMEWEAP_LINUX_XTRA_OFF)
    
set_pdata_float(idm_flNextAttackRELOAD_TIMEPLAYER_LINUX_XTRA_OFF)
    
set_pdata_int(weapon_entitym_fInReload1WEAP_LINUX_XTRA_OFF)
    
UTIL_PlayWeaponAnimation(id1,2)
    return 
HAM_IGNORED;
}
stock drop_weapons(iddropwhat)
{
     static 
weapons[32], numiweaponid
     num 
0
     get_user_weapons
(idweaponsnum)
     for (
0numi++)
     {
          
weaponid weapons[i]
          if (
dropwhat == && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
          {
               static 
wname[32]
               
get_weaponname(weaponidwnamesizeof wname 1)
               
engclient_cmd(id"drop"wname)
          }
     }


ERROR:
When this plugin grenade with a normal weapon damage by 20 is 160 damage How do I set it?
Take maximum 100 damage with grenades.
100 hp with a maximum grant of this plugin grenade damage ?

Unkolix 02-13-2013 03:27

Re: Please Melp Me About This Plugin !!!
 
Please explain prolerly. I didn't understand anything you want.

KiNg Clan 02-13-2013 07:34

Re: Please Melp Me About This Plugin !!!
 
100 damage with a maximum grant bomb ?


All times are GMT -4. The time now is 20:30.

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