Raised This Month: $ Target: $400
 0% 

Subplugin Submission [ZP] Extra Item : FlameXM1014


Post New Thread Reply   
 
Thread Tools Display Modes
Krtola
Veteran Member
Join Date: Oct 2013
Location: Serbia
Old 12-03-2014 , 19:16   Re: [ZP] Extra Item : FlameXM1014
Reply With Quote #61

Quote:
Originally Posted by zmd94 View Post
I appreciate it, YamiKaitou. ;)

By the way, when I search the other forum for this similar extra item, I manage to find it.
PHP Code:
#include <amxmodx>
#include <fun>
#include <engine>
#include <hamsandwich>
#include <zombieplague>

#define PLUGIN "[ZP] Flame XM1014"
#define VERSION "1.0"
#define AUTHOR "Javivi"

// Macro
new g_MaxPlayers
#define IsValidUser(%1) (1 <= %1 <= g_MaxPlayers)

// Weapon cost
#define WEAPON_COST 15

// Old version?
// #define OLD_VERSION

// ZP default Burn sounds
new const burn_sounds[ ][ ] =
{
    
"zombie_plague/zombie_burn3.wav",   
    
"zombie_plague/zombie_burn4.wav",
    
"zombie_plague/zombie_burn5.wav",
    
"zombie_plague/zombie_burn6.wav",
    
"zombie_plague/zombie_burn7.wav" 
}

// Item ID,  Flame Sprite, Smoke sprite
new g_ItemIDsprFlamesprSmoke

// Some bools
new bool:g_bFlameXM101433 ]
new 
bool:g_AlreadyBurn33 ]

// Cvars
new cvar_MaxBurnDMGcvar_MinBurnDMGcvar_BurnTimecvar_Delaycvar_OneRound

// Cached Cvars
new cvar_cMaxBurnDMGcvar_cMinBurnDMGcvar_cBurnTimeFloat:cvar_cDelay
new Time33 ]

public 
plugin_init( )
{
    
register_pluginPLUGINVERSIONAUTHOR )
    
    
// Get maxplayers
    
g_MaxPlayers get_maxplayers( )
    
    
// CVARs
    
cvar_MaxBurnDMG register_cvar"zp_flamexm_maxdmg""3" )
    
cvar_MinBurnDMG register_cvar"zp_flamexm_mindmg""1" )
    
cvar_BurnTime register_cvar"zp_flamexm_time""12" )    // Real Time = Time/2
    
cvar_Delay register_cvar"zp_flamexm_delay""4.0" )
    
cvar_OneRound register_cvar"zp_flamexm_oneround""0" )
    
    
// Cache cvars
    
register_event"HLTV""event_round_start""a""1=0""2=0" )
    
    
// Hook drop
    
register_clcmd"drop""HookDrop" )
    
    
// Register the extraitem
    
g_ItemID zp_register_extra_item"Flame XM1014"WEAPON_COSTZP_TEAM_HUMAN )
    
    
// Ham fwds
    
RegisterHamHam_Spawn"player""fw_PlayerSpawn_Post")
    
RegisterHamHam_Killed"player""fw_PlayerKilled_Post")
    
RegisterHamHam_TakeDamage"player""fw_TakeDamage" )
    
    
// Gamemonitor info
    
static szCvar30 ]
    
formatexszCvarcharsmax(szCvar), "v%s by Javivi"VERSION )
    
register_cvar"zp_flamexm_version"szCvarFCVAR_SERVER|FCVAR_SPONLY )
}

public 
plugin_precache( )
{
    
// Precache flame/smoke sprite
    
sprFlame precache_model"sprites/flame.spr" )
    
sprSmoke precache_model"sprites/black_smoke3.spr" )
    
    
// Precache Burn sounds
    
for( new 0sizeof burn_soundsi++ )
        
precache_soundburn_sounds] )
}

// Cache CVARs
public event_round_start( )
{
    
cvar_cMaxBurnDMG get_pcvar_numcvar_MaxBurnDMG )
    
cvar_cMinBurnDMG get_pcvar_numcvar_MinBurnDMG )
    
cvar_cBurnTime get_pcvar_numcvar_BurnTime )
    
cvar_cDelay get_pcvar_floatcvar_Delay )
}

public 
client_disconnectid )
{
    if( 
g_bFlameXM1014id ] )
        
g_bFlameXM1014id ] = false
        
    
// Reset Time Counter
    
Timeid ] = 0
}

public 
HookDropid )
{
    
// If some human drop the FlameXM1014
    
if(is_user_aliveid ) && get_user_weaponid ) == CSW_XM1014 && g_bFlameXM1014 id ] )
    {
        
g_bFlameXM1014id ] = false
    
}
}
/*========================
* Zombie Plague Forwards *
=========================*/
// When someone buy the extraitem
public zp_extra_item_selectediditemid )
{
    if( 
itemid == g_ItemID )
    {
        if( !
zp_has_round_started( ) || g_bFlameXM1014id ] )
        {
            
client_print(idprint_chat"You can't buy the FlameXM1014 at this moment!")
            
            
#if defined OLD_VERSION
            
            
zp_set_user_ammo_packsidzp_get_user_ammo_packs(id) + WEAPON_COST )    
            
            
#else
            
            
return ZP_PLUGIN_HANDLED
            
            
#endif
        
}
        else
        {
            
// Give auto-shotgun
            
give_itemid"weapon_xm1014" )
            
            
// Give ammo
            
give_itemid"ammo_buckshot" )
            
give_itemid"ammo_buckshot" )
            
give_itemid"ammo_buckshot" )
            
give_itemid"ammo_buckshot" )
            
            
// Set FlameXM1014
            
g_bFlameXM1014id ] = true
        
}
    }
    return 
PLUGIN_HANDLED;
}

// When someone is infected
public zp_user_infected_postid )
{
    if( 
g_bFlameXM1014id ] ) // If have a FlameXM1014
        
g_bFlameXM1014id ] = false
}

/*==============
* Ham Forwards *
==============*/
public fw_PlayerSpawn_Postid )
{
    if( 
get_pcvar_numcvar_OneRound ) == && g_bFlameXM1014id ] )
    {
        
client_print(idprint_chat"[ZP] FlameXM1014 bullets are over!")
        
g_bFlameXM1014id ] = false
    
}
}
public 
fw_PlayerKilled_Postvictimattackershouldgib )
{
    if(
g_bFlameXM1014victim ] ) // If have a FlameXM1014
        
g_bFlameXM1014victim ] = false
}

public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type)
{
    if(
IsValidUserattacker ) && victim != attacker && zp_get_user_zombievictim // If attacker is valid and victim is zombie
    
&& g_bFlameXM1014attacker ] && get_user_weaponattacker ) == CSW_XM1014 && !g_AlreadyBurnvictim ] ) // If attacker have the FlameXM1014 and victim is not burned
    
{
        
// Burn / ON
        
g_AlreadyBurnvictim ] = true
        
        
// Set burn time
        
Timevictim ] = cvar_cBurnTime
        
        
// Burn victim
        
Burnvictim )
        
        
// Emit burn sound        
        
emit_soundvictimCHAN_VOICEburn_sounds[random_num(0sizeof burn_sounds 1)], 1.0ATTN_NORM0PITCH_NORM )  
    }
}

/*======================================================*/
public Burnvictim )
{
    
// Get user origin
    
static Origin] ; get_user_originvictimOrigin )
    
    
// If burn time is over or victim are in water
    
if( Timevictim ] <= || get_entity_flagsvictim ) & FL_INWATER )
    {    
        
// Show Smoke sprite    
        
message_beginMSG_PVSSVC_TEMPENTITYOrigin )
        
write_byteTE_SMOKE // TE id
        
write_coordOrigin[0] ) // x
        
write_coordOrigin[1] ) // y
        
write_coordOrigin[2]-50 // z
        
write_shortsprSmoke // sprite
        
write_byterandom_num(1520) ) // scale
        
write_byterandom_num(1020) ) // framerate
        
message_end( )
        
        
// Delay to allow burn again
        
set_taskcvar_cDelay"Stop"victim )
        
        
// Exit
        
return
    }
    else
    {        
        if( 
cvar_cBurnTime == Timevictim ]) // At half-burntime
        
{
            
// Play another sound
            
emit_soundvictimCHAN_VOICEburn_sounds[random_num(0sizeof burn_sounds 1)], 1.0ATTN_NORM0PITCH_NORM 
        }
        
        
// Flame sprite    
        
message_beginMSG_PVSSVC_TEMPENTITYOrigin )
        
write_byteTE_SPRITE // TE id
        
write_coordOrigin[0]+random_num(-55) ) // x
        
write_coordOrigin[1]+random_num(-55) ) // y
        
write_coordOrigin[2]+random_num(-1010) ) // z
        
write_shortsprFlame // sprite
        
write_byterandom_num(510) ) // scale
        
write_byte200 // brightness
        
message_end( )
            
        
// Decrease Time
        
Timevictim ]--
        
        
// Decrease life (random)
        
set_user_healthvictimget_user_healthvictim ) - random_numcvar_cMinBurnDMGcvar_cMaxBurnDMG ) )
        
        
// Repeat
        
set_task0.5"Burn"victim )
    }
}

public 
Stopvictim )
        
g_AlreadyBurnvictim ] = false // Allow burn again 
Can you add support for v,p and w model and maybe new sound for shoot?
Krtola is offline
Send a message via Skype™ to Krtola
zmd94
Veteran Member
Join Date: Nov 2013
Location: Malaysia (9w2zow).
Old 12-03-2014 , 19:48   Re: [ZP] Extra Item : FlameXM1014
Reply With Quote #62

Just read this tutorial: https://forums.alliedmods.net/showthread.php?t=40822
zmd94 is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 19:13.


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