AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   help add armor to player (https://forums.alliedmods.net/showthread.php?t=135880)

Rhyme 08-20-2010 13:43

help add armor to player
 
help add to those who buy this item armor +500

PHP Code:

#include <amxmodx>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <zombieplague>

const knifespeed_ap_cost 15 // Ap cast

new Float:knifespeed_mins[3] = { -2.0, -2.0, -2.0 }
new 
Float:knifespeed_maxs[3] = { 2.02.02.0 }

new 
g_iItemIDg_msgCurWeapong_msgSayText

// arrays
new g_hasks[33], g_iCurrentWeapon[33]

// cvars
new cvar_enablecvar_oneroundcvar_dropflagscvar_pattack_ratecvar_sattack_rate

// drop flags
const DROPFLAG_INDEATH =    (1<<0// a - death victim
const DROPFLAG_INFECTED =    (1<<1// b - drop in infected
const DROPFLAG_SURVHUMAN =    (1<<2// c - drop become survivor

// offset
const m_pPlayer =         41
const m_flNextPrimaryAttack =     46
const m_flNextSecondaryAttack =    47
const m_flTimeWeaponIdle =     48

// Plug info.
#define PLUG_VERSION "1.0"
#define PLUG_AUTH "Rhyme"

public plugin_init()
{
    
// register plugin
    
register_plugin("[ZP] Extra Item: Knife Speed"PLUG_VERSIONPLUG_AUTH)
    
    
// events    
    
register_event("HLTV""event_RoundStart""a""1=0""2=0")
    
register_event("CurWeapon""event_CurWeapon""b""1=1")
    
    
// cvars
    
cvar_enable register_cvar("zp_ks_enable""1")
    
cvar_oneround register_cvar("zp_ks_oneround""0")
    
cvar_dropflags register_cvar("zp_ks_dropflags""bcd")
    
cvar_pattack_rate register_cvar("zp_ks_attack1_rate""0.1")
    
cvar_sattack_rate register_cvar("zp_ks_attack2_rate""0.7")
    
    new 
szCvar[30]
    
formatex(szCvarcharsmax(szCvar), "v%s by %s"PLUG_VERSIONPLUG_AUTH)
    
register_cvar("zp_extra_knifespeed"szCvarFCVAR_SERVER|FCVAR_SPONLY)
    
    
// engine forwards
    
register_touch("cs_knifespeed""player""fw_Knifespeed_Touch")
    
    
// Ham Forwards
    
RegisterHam(Ham_Spawn"player""fw_PlayerSpawn_Post"1)
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_knife""fw_Knife_PrimaryAttack_Post"1)
    
RegisterHam(Ham_Weapon_SecondaryAttack"weapon_knife""fw_Knife_SecondaryAttack_Post"1)
    
    
// Variables
    
g_iItemID zp_register_extra_item("Knife Speed"knifespeed_ap_costZP_TEAM_HUMAN)
    
    
// Message ID's vars
    
g_msgSayText get_user_msgid("SayText")
    
g_msgCurWeapon get_user_msgid("CurWeapon")
    
    
// Client Commands
    
register_clcmd("drop""clcmd_drop")
}

public 
plugin_precache()
{
    
precache_sound("items/gunpickup2.wav")
}

public 
event_RoundStart()
{
    
// Remove knifespeeds (entities)
    
remove_entity_name("cs_knifespeed")
}

public 
event_CurWeapon(id)
{
    
// Not alive...
    
if(!is_user_alive(id))
        return 
PLUGIN_CONTINUE
        
    
// Updating weapon array
    
g_iCurrentWeapon[id] = read_data(2)
    
    
// Check
    
if(zp_get_user_zombie(id) || zp_get_user_survivor(id))
        return 
PLUGIN_CONTINUE
        
    
// Has knifespeed and weapon is Knife
    
if(!g_hasks[id] || g_iCurrentWeapon[id] != CSW_KNIFE
        return 
PLUGIN_CONTINUE
        
    
return PLUGIN_CONTINUE
}

/*================================================================================
 [Main Functions]
=================================================================================*/

public drop_knifespeed(id
{
    
// Get Aim and Origin
    
static Float:flAim[3], Float:flOrigin[3]
    
VelocityByAim(id64flAim)
    
entity_get_vector(idEV_VEC_originflOrigin)
    
    
// Changing Origin coords
    
flOrigin[0] += flAim[0]
    
flOrigin[1] += flAim[1]
    
    
// Creating the Entity
    
new iEnt create_entity("info_target")
    
    
// Classname
    
entity_set_string(iEntEV_SZ_classname"cs_knifespeed")
    
    
// Origin
    
entity_set_origin(iEntflOrigin)
    
    
// Size
    
set_size(iEntknifespeed_minsknifespeed_maxs)
    
entity_set_vector(iEntEV_VEC_minsknifespeed_mins)
    
entity_set_vector(iEntEV_VEC_maxsknifespeed_maxs)
    
    
// Solid Type
    
entity_set_int(iEntEV_INT_solidSOLID_TRIGGER)
    
    
// Movetype
    
entity_set_int(iEntEV_INT_movetypeMOVETYPE_TOSS)
    
    
// Var's
    
g_hasks[id] = false
    
    
// Model bugfix
    
reset_user_knife(id)
}

public 
reset_user_knife(id)
{
    
// Execute weapon Deploy
    
if(user_has_weapon(idCSW_KNIFE))
        
ExecuteHamB(Ham_Item_Deployfind_ent_by_owner(-1"weapon_knife"id))
        
    
// Updating Model
    
engclient_cmd(id"weapon_knife")
    
emessage_begin(MSG_ONEg_msgCurWeapon_id)
    
ewrite_byte(1// active
    
ewrite_byte(CSW_KNIFE// weapon
    
ewrite_byte(-1// clip
    
emessage_end()
}

/*================================================================================
 [ZombiePlague Forwards]
=================================================================================*/

public zp_extra_item_selected(iditemid)
{
    if (
itemid == g_iItemID)
    {
        
// Check cvar
        
if(get_pcvar_num(cvar_enable))
        {
            
// Already has a KnifeSpeed
            
if (g_hasks[id])
            {
                
zp_set_user_ammo_packs(idzp_get_user_ammo_packs(id) + knifespeed_ap_cost)
                
client_printcolor(id"/g[ZP]/y You already have a /gKnife Speed")
            }
            else 
            {
                
// Boolean
                
g_hasks[id] = true
                
                
// Emiting Sound
                
emit_sound(idCHAN_WEAPON"items/gunpickup2.wav"1.0ATTN_NORM0PITCH_NORM)
                
                
// Client Print
                
client_printcolor(id"/g[ZP]/y You now have a /gKnife Speed")
                
                
// Change weapon to Knife
                
reset_user_knife(id)
            }
        }
        
// Isn't enabled...
        
else
        {
            
zp_set_user_ammo_packs(idzp_get_user_ammo_packs(id) + knifespeed_ap_cost)
            
client_printcolor(id"/g[ZP]/y Knife Speed item has been disabled. /gContact Admin")
        }
    }
}

public 
zp_user_infected_pre(idinfector)
{
    
// Drop in infection
    
if (g_hasks[id])
    {
        if(
check_drop_flag(DROPFLAG_INFECTED))
            
drop_knifespeed(id)
        else
        {
            
g_hasks[id] = false
            reset_user_knife
(id)
        }
    }
}

public 
zp_user_humanized_post(id)
{
    
// Is survivor
    
if(zp_get_user_survivor(id) && g_hasks[id])
    {
        if(
check_drop_flag(DROPFLAG_SURVHUMAN))
            
drop_knifespeed(id)
        else
        {
            
g_hasks[id] = false
            reset_user_knife
(id)
        }
    }
}

/*================================================================================
 [Main Forwards]
=================================================================================*/

public client_putinserver(id)
{
    
g_hasks[id] = false
}

public 
client_disconnect(id)
{
    
g_hasks[id] = false
}
    
public 
fw_PlayerSpawn_Post(id)
{
    
// Check Oneround Cvar and Strip all the KnifeSpeeds
    
if(get_pcvar_num(cvar_oneround) || !get_pcvar_num(cvar_enable))
    {
        
// Has KnifeSpeed
        
if(g_hasks[id])
        {
            
// Var's
            
g_hasks[id] = false

            
// Update Knife
            
reset_user_knife(id)
        }
    }
}

public 
fw_PlayerKilled(victimattackershouldgib)
{
    
// Check
    
if(victim == attacker || !attacker)
        return 
HAM_IGNORED
        
    
// Attacker is not a Player
    
if(!is_user_connected(attacker))
        return 
HAM_IGNORED
        
    
// Attacker Has a KnifeSpeed
    
if(g_hasks[attacker] && g_iCurrentWeapon[attacker] == CSW_KNIFE && !zp_get_user_nemesis(victim))
    
    
// Victim Has a KnifeSpeed
    
if(g_hasks[victim])
    {
        if(
check_drop_flag(DROPFLAG_INDEATH))
            
drop_knifespeed(victim)
        else
        {
            
g_hasks[victim] = false
            reset_user_knife
(victim)
        }
    }
    
    return 
HAM_IGNORED
}

public 
fw_Knifespeed_Touch(sawplayer)
{
    
// Entities are not valid
    
if(!is_valid_ent(saw) || !is_valid_ent(player))
        return 
PLUGIN_CONTINUE
        
    
// Is a valid player?
    
if(!is_user_connected(player))
        return 
PLUGIN_CONTINUE
        
    
// Alive, Zombie or Survivor
    
if(!is_user_alive(player) || zp_get_user_zombie(player) || zp_get_user_survivor(player) || g_hasks[player])
        return 
PLUGIN_CONTINUE
        
    
// Var's
    
g_hasks[player] = true
    
    
// Emiting Sound
    
emit_sound(playerCHAN_WEAPON"items/gunpickup2.wav"1.0ATTN_NORM0PITCH_NORM)
    
    
// Knife Deploy
    
reset_user_knife(player)
    
    
// Remove dropped KnifeSpeed
    
remove_entity(saw)
        
    return 
PLUGIN_CONTINUE
}

public 
fw_Knife_PrimaryAttack_Post(knife)
{    
    
// Get knife owner
    
static id
    id 
get_pdata_cbase(knifem_pPlayer4)
    
    
// has a KnifeSpeed
    
if(is_user_connected(id) && g_hasks[id])
    {
        
// Get new fire rate
        
static Float:flRate
        flRate 
get_pcvar_float(cvar_pattack_rate)
        
        
// Set new rates
        
set_pdata_float(knifem_flNextPrimaryAttackflRate4)
        
set_pdata_float(knifem_flNextSecondaryAttackflRate4)
        
set_pdata_float(knifem_flTimeWeaponIdleflRate4)
        
    }
    
    return 
HAM_IGNORED
}

public 
fw_Knife_SecondaryAttack_Post(knife)
{    
    
// Get knife owner
    
static id
    id 
get_pdata_cbase(knifem_pPlayer4)
    
    
// has a KnifeSpeed
    
if(is_user_connected(id) && g_hasks[id])
    {
        
// Get new fire rate
        
static Float:flRate
        flRate 
get_pcvar_float(cvar_sattack_rate)
        
        
// Set new rates
        
set_pdata_float(knifem_flNextPrimaryAttackflRate4)
        
set_pdata_float(knifem_flNextSecondaryAttackflRate4)
        
set_pdata_float(knifem_flTimeWeaponIdleflRate4)
    }
    
    return 
HAM_IGNORED
}


check_drop_flag(flag)
{
    new 
szFlags[10]
    
get_pcvar_string(cvar_dropflagsszFlagscharsmax(szFlags))
    
    if(
read_flags(szFlags) & flag)
        return 
true
        
    
return false
}

stock client_printcolor(const id, const input[], any:...)
{
    new 
iCount 1iPlayers[32]
    
    static 
szMsg[191]
    
vformat(szMsgcharsmax(szMsg), input3)
    
    
replace_all(szMsg190"/g""^4"// green txt
    
replace_all(szMsg190"/y""^1"// orange txt
    
replace_all(szMsg190"/ctr""^3"// team txt
    
replace_all(szMsg190"/w""^0"// team txt
    
    
if(idiPlayers[0] = id
    
else get_players(iPlayersiCount"ch")
        
    for (new 
0iCounti++)
    {
        if (
is_user_connected(iPlayers[i]))
        {
            
message_begin(MSG_ONE_UNRELIABLEg_msgSayText_iPlayers[i])
            
write_byte(iPlayers[i])
            
write_string(szMsg)
            
message_end()
        }
    }
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1251\\ deff0\\ deflang1049{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/ 


lucas_7_94 08-20-2010 13:57

Re: help add armor to player
 
you 'make' the plugin , and you doesn't have idea to add 500 armor .

lol + fail 6 crabs for you

Rhyme 08-20-2010 15:02

Re: help add armor to player
 
I did not. I just redid the plugin metaliscros's "chainsaw" I'm bad
do plugin
just plug it in such a thing: (id, itemid) due to her not give
armor, only if (player, itemid) help me please.
please stop call

drekes 08-20-2010 20:03

Re: help add armor to player
 
cs_set_user_armor

And if you just edited a plugin, you are not the author, and you can not set yourself as author of the plugin.

Zpoke 08-21-2010 05:12

Re: help add armor to player
 
Quote:

Originally Posted by lucas_7_94 (Post 1276976)
you 'make' the plugin , and you doesn't have idea to add 500 armor .

lol + fail 6 crabs for you


don't be so hard on him :cry:


All times are GMT -4. The time now is 21:55.

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