|
Veteran Member
Join Date: Nov 2013
Location: Malaysia (9w2zow).
|

07-25-2014
, 06:30
Re: Problem
|
#7
|
Why you delete your code?
PHP Code:
/* Plugin generated by AMXX-Studio */
#include < amxmodx > #include < amxmisc > #include < hamsandwich > #include < fakemeta > #include < engine > #include < zombieplague >
#define PLUGIN "[ZP] Knifes" #define VERSION "1.0" #define AUTHOR "heka"
new iKnife[ 33 ]
enum { AXE = 0 , STRONG , COMBAT , HAMMER }
new const Knife_View_Models[ ] [ ] = { "models/knifes/v_axe.mdl" , "models/knifes/v_strong.mdl" , "models/knifes/v_combat.mdl" , "models/knifes/v_hammer.mdl" } new const Knife_Player_Models[ ] [ ] = { "models/knifes/p_axe.mdl" , "models/knifes/p_strong.mdl" , "models/knifes/p_combat.mdl" , "models/knifes/p_hammer.mdl" } new const Knife_Sounds[ ] [ ] [ ] = { { "knifes/axe/draw.wav" , "knifes/axe/hit_normal_1.wav" , "knifes/axe/hit_normal_2.wav" , "knifes/axe/hit_wall.wav" , "knifes/axe/miss.wav" , "knifes/axe/hit_stab.wav" }, { "knifes/strong/draw.wav" , "knifes/strong/hit_normal_1.wav" , "knifes/strong/hit_normal_2.wav" , "knifes/strong/hit_wall.wav" , "knifes/strong/miss.wav" , "knifes/strong/hit_stab.wav" }, { "knifes/combat/draw.wav" , "knifes/combat/hit_normal_1.wav" , "knifes/combat/hit_normal_2.wav" , "knifes/combat/hit_wall.wav" , "knifes/combat/miss.wav" , "knifes/combat/hit_stab.wav" }, { "knifes/hammer/draw.wav" , "knifes/hammer/hit_normal_1.wav" , "knifes/hammer/hit_normal_2.wav" , "knifes/hammer/hit_wall.wav" , "knifes/hammer/miss.wav" , "knifes/hammer/hit_stab.wav" } } new const Knife_Jump[ ] = { 160 , 350 , 570 , 680 } new const Knife_Damage[ ] = { "5.0" , "6.0" , "4.5" , "10.0" } new const Knife_Knockback[ ] = { "10.0" , "6.0" , "8.0" , "16.0" }
public plugin_init( ) { register_plugin( PLUGIN , VERSION , AUTHOR ) RegisterHam( Ham_Item_Deploy , "weapon_knife" , "CBaseWeapon_Deploy_Post" , .Post = true ); RegisterHam( Ham_TakeDamage , "player" , "CBaseWeapon_TakeDamage" ) RegisterHam( Ham_TakeDamage , "player" , "CBaseWeapon_TakeDamage_Post" , .Post = true )
register_forward( FM_EmitSound , "Fw_EmitSound" ) register_forward(FM_PlayerPreThink, "Fw_PreThink"); register_clcmd( "say /knifes" , "ClCmd_KnifeMenu" ) }
public plugin_precache( ) { new i;
for(i = 0; i < 4; i++) { precache_model( Knife_Player_Models[ i ] ) precache_model( Knife_View_Models[ i ] ) }
for( i = 0; i < 4; i++ ) { precache_sound( Knife_Sounds[ i ] [ 0 ] ) precache_sound( Knife_Sounds[ i ] [ 1 ] ) precache_sound( Knife_Sounds[ i ] [ 2 ] ) precache_sound( Knife_Sounds[ i ] [ 3 ] ) precache_sound( Knife_Sounds[ i ] [ 4 ] ) precache_sound( Knife_Sounds[ i ] [ 5 ] ) } }
public client_putinserver( iPlayer ) iKnife [ iPlayer ] = AXE
public ClCmd_KnifeMenu( iPlayer ) { if( ! is_user_alive( iPlayer ) ) return if( zp_get_user_zombie( iPlayer ) ) return if( zp_has_round_started( ) ) return
static buffer[ 512 ] new iKnife_Menu = menu_create( "\yChoose knife" , "ClCmd_KnifeMenu_Handler" ) formatex( buffer , charsmax( buffer ) , iKnife[ iPlayer ] == AXE ? "\rAxe" : "Axe" ) menu_additem( iKnife_Menu , buffer , "1" ) formatex( buffer , charsmax( buffer ) , iKnife[ iPlayer ] == STRONG ? "\rStrong" : "Strong" ) menu_additem( iKnife_Menu , buffer , "2" ) formatex( buffer , charsmax( buffer ) , iKnife[ iPlayer ] == COMBAT ? "\rCombat" : "Combat" ) menu_additem( iKnife_Menu , buffer , "3" ) formatex( buffer , charsmax( buffer ) , iKnife[ iPlayer ] == HAMMER ? "\rHammer \y[VIP]" : "Hammer \y[VIP]" , ADMIN_LEVEL_H ) menu_additem( iKnife_Menu , buffer , "4" ) menu_setprop( iKnife_Menu , MPROP_EXIT , MEXIT_ALL ) menu_display( iPlayer , iKnife_Menu , 0 ) }
public ClCmd_KnifeMenu_Handler( iPlayer , iMenu , iItem ) { if( iItem == MENU_EXIT ){ menu_destroy( iMenu ) return PLUGIN_HANDLED }
if( zp_has_round_started( ) ) return PLUGIN_HANDLED
new iData[ 6 ] , iName[ 64 ] new iAccess, iCallBack menu_item_getinfo( iMenu , iItem , iAccess , iData , 5 , iName , 63 , iCallBack ) new iKey = str_to_num( iData ) switch( iKey ){ case 1: iKnife[ iPlayer ] = AXE case 2: iKnife[ iPlayer ] = STRONG case 3: iKnife[ iPlayer ] = COMBAT case 4: iKnife[ iPlayer ] = HAMMER } message_begin( MSG_ONE , get_user_msgid("WeapPickup") , _, iPlayer ) write_byte( CSW_KNIFE ) message_end( ) if( get_user_weapon ( iPlayer ) != CSW_KNIFE ) return PLUGIN_HANDLED;
ExecuteHamB( Ham_Item_Deploy , get_pdata_cbase( iPlayer , 373 ) ) return PLUGIN_HANDLED }
public CBaseWeapon_Deploy_Post( iEntity ) { if( !pev_valid( iEntity ) ) return HAM_HANDLED;
new iPlayer; iPlayer = get_pdata_cbase( iEntity , 41 , 4 ); if( zp_get_user_zombie( iPlayer ) ) return HAM_HANDLED
set_pev( iPlayer , pev_viewmodel2 , Knife_View_Models[ iKnife[ iPlayer ] ] ); set_pev( iPlayer , pev_weaponmodel2 , Knife_Player_Models[ iKnife[ iPlayer ] ] );
set_pdata_float( iPlayer , 83 , 1.0 , 5 );
return HAM_IGNORED; }
public Fw_EmitSound( iPlayer , iChannel , iSample[] , Float:flVolume , Float:flAttn , iFlag , iPitch ) { if( ! is_user_connected( iPlayer ) ) return FMRES_IGNORED; if( zp_get_user_zombie( iPlayer ) ) return FMRES_IGNORED
if( iSample[ 8 ] == 'k' && iSample[ 9 ] == 'n' && iSample[ 10 ] == 'i' ) { if( iSample[ 14 ] == 'd' ) { emit_sound( iPlayer , iChannel , Knife_Sounds[ iKnife [ iPlayer ] ] [ 0 ] , flVolume , flAttn , iFlag , iPitch ) } else if(iSample[ 14 ] == 'h') { if(iSample[ 17 ] == 'w') { emit_sound(iPlayer , iChannel , Knife_Sounds[ iKnife[ iPlayer ] ] [ 3 ] , flVolume , flAttn , iFlag , iPitch ) } else { emit_sound(iPlayer , iChannel , Knife_Sounds[ iKnife[ iPlayer ] ] [ random_num( 1 , 2 ) ] , flVolume , flAttn , iFlag , iPitch ) } } else { if( iSample[ 15 ] == 'l' ) { emit_sound( iPlayer , iChannel , Knife_Sounds[ iKnife[ iPlayer ] ] [ 4 ] , flVolume , flAttn , iFlag , iPitch ) } else { emit_sound( iPlayer , iChannel , Knife_Sounds[ iKnife[ iPlayer ] ] [ 5 ] , flVolume , flAttn , iFlag , iPitch ) } }
return FMRES_SUPERCEDE; }
return FMRES_IGNORED; }
public CBaseWeapon_TakeDamage( iVictim , iInflector , iAttacker , Float:flDamage , bitsDamageType ) { if( ! is_user_connected( iAttacker ) || iVictim == iAttacker ) return; if( get_user_weapon( iAttacker ) != CSW_KNIFE || ( ! ( bitsDamageType & DMG_BULLET ) ) ) return; if( zp_get_user_zombie( iAttacker ) ) return; if( !zp_get_user_zombie( iVictim ) ) return;
SetHamParamFloat( 4 , flDamage * Knife_Damage[ iKnife[ iAttacker ] ] ) }
public CBaseWeapon_TakeDamage_Post( iVictim , iInflector, iAttacker , Float:flDamage , bitsDamageType , Float:velocity[ 3 ] ) { if( ! is_user_connected( iAttacker ) || iVictim == iAttacker ) return if( get_user_weapon( iAttacker ) != CSW_KNIFE ) return if( zp_get_user_zombie( iAttacker ) ) return
client_print( iAttacker , print_center, "%d", floatround( flDamage , floatround_floor ) )
new Float:newvelocity[ 3 ] entity_get_vector( iVictim , EV_VEC_velocity , velocity ) new Float:victim_origin[ 3 ], Float:attacker_origin[ 3 ] entity_get_vector( iVictim , EV_VEC_origin , victim_origin ) entity_get_vector( iAttacker , EV_VEC_origin , attacker_origin ) newvelocity[ 0 ] = victim_origin[ 0 ] - attacker_origin[ 0 ] newvelocity[ 1 ] = victim_origin[ 1 ] - attacker_origin[ 1 ] new Float:largestnum = 0.0 if ( 0 <= floatcmp( floatabs( newvelocity[ 0 ] ) , floatabs( newvelocity[ 1 ] ) ) <= 1 ){ if ( floatabs( newvelocity[ 0 ] ) > 0 ) largestnum = floatabs( newvelocity[ 0 ] ) } else { if ( floatabs( newvelocity[ 1 ]) > 0 ) largestnum = floatabs( newvelocity[ 1 ] ) }
newvelocity[ 0 ] /= largestnum newvelocity[ 1 ] /= largestnum velocity[ 0 ] = newvelocity[ 0 ] * Knife_Knockback[ iKnife[ iAttacker ] ] * 3000 / get_distance_f( victim_origin , attacker_origin ) velocity[ 1 ] = newvelocity[ 1 ] * Knife_Knockback[ iKnife[ iAttacker ] ] * 3000 / get_distance_f( victim_origin , attacker_origin ) if( newvelocity[ 0 ] <= 20.0 || newvelocity[ 1 ] <= 20.0 ) newvelocity[ 2 ] = random_float( 200.0 , 275.0 ) newvelocity[ 0 ] += velocity[ 0 ] newvelocity[ 1 ] += velocity[ 1 ] entity_set_vector( iVictim , EV_VEC_velocity , newvelocity )
set_pdata_float( iVictim , 108 , 1.0 ) }
public Fw_PreThink( iPlayer ) { if( ! is_user_alive( iPlayer ) ) return PLUGIN_CONTINUE if( zp_get_user_zombie( iPlayer ) ) return PLUGIN_CONTINUE
new temp[ 2 ], weapon = get_user_weapon( iPlayer , temp[ 0 ] , temp[ 1 ] )
if( weapon == CSW_KNIFE ) { if ( ( pev( iPlayer , pev_button ) & IN_JUMP ) && ! ( pev( iPlayer , pev_oldbuttons) & IN_JUMP ) ) { new flags = pev( iPlayer , pev_flags ) new waterlvl = pev( iPlayer , pev_waterlevel ) if ( ! ( flags & FL_ONGROUND ) ) return PLUGIN_CONTINUE; if ( flags & FL_WATERJUMP ) return PLUGIN_CONTINUE; if ( waterlvl > 1 ) return PLUGIN_CONTINUE; new Float:fVelocity[ 3 ] pev( iPlayer , pev_velocity , fVelocity ) fVelocity[ 2 ] += Knife_Jump[ iKnife[ iPlayer ] ]
set_pev( iPlayer , pev_velocity , fVelocity ) set_pev( iPlayer , pev_gaitsequence , 6 ) } } return PLUGIN_CONTINUE }
Quote:
Originally Posted by mottzi
You dont need to show us the code, you should place the *.inc file in your scripting/includes folder first.
|
By the way, just try his suggestion. Then tell us the result.
Last edited by zmd94; 07-25-2014 at 06:31.
|
|